Someone asked: "Did you use an agent to automate that?"
Yes. Here's exactly how.
A structured article about McKay Wrigley's Claude Code Task System demo, with frames, transcript, and analysis.
Me: "Extract this video and create an explanatory lesson with images"
https://x.com/mckaywrigley/status/2015811031675662507
One instruction. No step-by-step commands.
curl -s -H "X-API-Key: $TWITTER_API_KEY" \
"https://api.twitterapi.io/twitter/tweet?tweet_id=2015811031675662507"Output:
- Author: @mckaywrigley
- Date: Jan 26, 2026
- Engagement: 41 likes, 36 bookmarks, 1.5K views
- Video URL extracted from tweet JSON response
Video URL extracted from tweet metadata, then downloaded directly from Twitter CDN:
curl -L -o video.mp4 \
"https://video.twimg.com/amplify_video/2015805528728027136/vid/avc1/1724x1080/XobMq0XrPOR_Aati.mp4?tag=21"Output:
video.mp4(1080p, 3min 28s, 10.5MB)
ffmpeg -i video.mp4 -vf "fps=1/10" frames/frame_%03d.jpgParameters:
- 1 frame every 10 seconds
- Total: 21 frames
Output:
frames/
├── frame_001.jpg # 0:00 - Create Project modal
├── frame_002.jpg # 0:10
├── frame_003.jpg # 0:20
├── ...
├── frame_020.jpg # 3:10 - Grid view (24 agents)
└── frame_021.jpg # 3:20
ffmpeg -i video.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 audio.wavOutput:
audio.wav(mono, 16kHz - optimized for Whisper)
curl -X POST "https://api.groq.com/openai/v1/audio/transcriptions" \
-H "Authorization: Bearer $GROQ_API_KEY" \
-F "file=@audio.wav" \
-F "model=whisper-large-v3-turbo" \
-F "response_format=verbose_json"Output: transcript.txt with timestamps
[00:00] So check this out. What we're going to do here is
we're just really quickly going to create a new project.
[00:08] I'm just going to actually call this basic calculator app.
[00:15] We're just going to do something really stupid here just to demo it.
...
[03:20] But very excited to get this into your guys' hands
and see what you do with it.
Agent analyzed which frame corresponds to which part of the transcript:
| Frame | Timestamp | Content |
|---|---|---|
| frame_001.jpg | 0:00-0:10 | "Create Project" modal open |
| frame_005.jpg | 0:40-0:50 | Two-column agent view setup |
| frame_010.jpg | 1:30-1:40 | Tasks being created in side panel |
| frame_015.jpg | 2:20-2:30 | Task claimed, shows "Owner: claude" |
| frame_020.jpg | 3:10-3:20 | Grid view with multiple cells |
Agent created markdown with:
## STEP 1: Create Project

**What's happening:**
- AgentShare interface (McKay's app)
- "Create Project" modal open
- Project name: "Basic Calculator App"
**Key concept:**
> "Projects let you work on the same files across multiple chats."
---
## STEP 2: Set Up Multi-Agent View

...Extracted automatically:
- Key quotes from transcript
- Tools mentioned (AgentShare, Claude Code, Agent SDK)
- Concepts (Task Claiming, Blocking System, Sync)
- Practical applications
At this point, I had a complete tutorial. Then I refined:
Me: "Transform into article style, inspired by viral article patterns"
Agent analyzed high-performing articles and identified patterns:
- Attack conventional wisdom in opening
- "The missing piece" reveal
- Short punchy sentences
Me: "Add context comparing Ralph (loop-based) vs Task System (parallel)"
Agent added comparison table:
| Aspect | Ralph (Loop) | Task System |
|---|---|---|
| Architecture | Single agent, N iterations | Multiple agents, parallel |
| Coordination | progress.txt file | Native task sync |
| Speed | Sequential | Scales with agents |
Me: "Add Old Way vs New Way hook"
Agent rewrote intro:
## The Problem
**OLD WAY:** Run one Claude agent. Wait. Check. Fix. Repeat.
The community found a workaround: **Ralph Wiggum** - bash loops
that restart agents, track progress in text files.
It works. But it's duct tape.
**NEW WAY:** Run 24 agents in parallel. Tasks sync automatically.
No more bash loops. No more progress.txt hacks. Native coordination.mckay-tasks-video/
├── video.mp4 # Original video (1080p)
├── audio.wav # Extracted audio
├── transcript.txt # Full transcript with timestamps
├── LESSON_TASK_SYSTEM_EN.md # Final article
└── frames/
├── frame_001.jpg
├── frame_005.jpg
├── frame_010.jpg
├── frame_015.jpg
├── frame_020.jpg
└── ... (21 frames total)
| Tool | Purpose |
|---|---|
| Claude Code | Orchestration + writing |
| Twitter API (twitterapi.io) | Fetch tweet metadata + extract video URL |
| curl | Download video from Twitter CDN |
| ffmpeg | Extract frames + audio |
| Groq Whisper API | Transcribe audio |
| Markdown | Output format |
Agent pipeline (autonomous): Steps 2-8 Human direction: Steps 1 and 9
The agent did the extraction, structuring, and heavy lifting. I directed the style and refined the output.