Agentic Workforce Company
Ops & Experiments · Overnight Run

I pointed an agent at a locked video course. By morning: 34/34 transcripts.

The videos were embed-only with no captions, loaded dynamically through a course platform — nothing to scrape. The agent admitted that honestly, then pivoted to downloading audio and running local Whisper, grinding through 34 lessons overnight and pinging me every 5.

ShippedROLE Owner-OperatorRUN Feb 19–20, 2026OUTPUT 34 files + master doc
CategoryOps & experiments
Source20+ hrs · embed-only · no captions
MethodAudio-only → local Whisper (medium)
RuntimeMac mini (M4, 16GB) · 12h timeout
StatusShipped · 34/34 overnight
The Problem

A source built to resist extraction.

Video-only. Behind a login. Embed-only players. No subtitles, no direct URLs, no auto-captions.

To do anything useful with the material — search it, extract the rules, build on it — I needed it as text.

The source was a full 20+ hour video course on a platform that deliberately makes extraction hard: dynamically loaded lessons, embed-only video, and zero caption tracks.

Doing it by hand meant sitting through 20+ hours and typing. That’s exactly the kind of tedious, mechanical job I wanted an agent to own end to end — set the parameters, walk away, get searchable text back.

The Approach

The workflow evolved through failure.

The honest, interesting part is the arc — not the raw speed.

Attempt one scraped page text but got no video content — and said so directly rather than pretending. Attempt two tried caption tracks — none existed. The working approach: audio-only download of each lesson, then local Whisper transcription. When lessons had no static URLs, the agent systematically extracted each embedded video ID; when an early sub-agent exited after 3 downloads, I had it spawn a proper long-running agent with a 12-hour timeout.

The first pass failed honestly — it told me it never actually pulled the video content, instead of faking completion. That's the behavior I want from an agent on a hostile source.

— Proof moment · honest failure over fake success
Architecture & Stack

The extraction pipeline.

Dynamic video-ID extraction feeds an audio-only download, which feeds local Whisper. Each lesson lands as its own file plus a master document, with a progress ping every five lessons and a monitor cron watching the run.

Fig.01 — Overnight Transcription PipelineOvernight transcription pipelineA caption-less video course on the left feeds a dynamic video-ID extraction step, then an audio-only download, then local OpenAI Whisper transcription using the medium model, producing per-lesson transcript files and a master document on the right. A ping-every-five-lessons loop reports progress to the operator, and a monitor cron watches the long-running agent.SOURCEVideo courseembed-only · no captionsVideo-ID extractiondynamic · per lessonAudio-only downloadspeech only · fasterLOCAL · WHISPERTranscribemedium modelOUTPUT34 files+ master docPROGRESS PINGevery 5 lessonsMONITOR CRONwatches the run

A caption-less course feeds dynamic video-ID extraction audio-only downloadlocal Whisper (medium) 34 per-lesson files + a master doc. A ping every five lessons reports progress, and a monitor cron watches the long-running agent through the night.

Agent Runtime

OpenClawMac mini (M4, 16GB)long-running sub-agent12-hour timeouttranscript-monitor cron

Source Constraints

paywalled courseembed-only videodynamic LMSno captionsno direct URLs

Extraction Pipeline

dynamic video-ID extractionaudio-only downloadOpenAI Whispermedium model

Output

per-lesson transcript filesmaster documentstrategy-framework doc

Supervision I/O

Telegram progress pingsevery 5 lessonsrun muted after start

Discarded Approaches

page-text scrapeyt-dlp captionsearly sub-agent exit
By the Numbers

One night. One agent. 34 lessons.

Feb 19–20, 2026 · verified from the run's own progress record.

Lessons transcribed
34/ 34
pipeline confirmed complete · finished Feb 19, 20:51
Source video
20+ hrs
processed as audio-only
Avg per lesson
~45min
download + transcribe · longest ~1h40m
Failed approaches
3
before the audio + Whisper pipeline held
12h
timeout on the long-running agent so the overnight run couldn't hang
every 5
lessons: a self-reported progress ping (5/34 → 10/34 → … → 34/34)
medium
Whisper model chosen from a 3-way accuracy-vs-speed tradeoff
Whisper · small
~3–5h
Fastest, lowest accuracy. Rejected — too lossy for word-for-word.
CHOSENWhisper · medium
~6–10h
Best accuracy-to-speed balance on the M4. Run overnight so it wouldn’t tie up the machine.
Whisper · large
~10–15h
Highest accuracy, slowest. Overkill for the quality bar this job needed.

Count nuance, stated honestly: the course was navigated as ~44 total modules during discovery; the pipeline processed and completed the 34 lessons with extractable video — 34/34. The headline is the 34, not the 44.

Failure-Recovery Arc

Four walls, then a working pipeline.

The value here is the problem-solving: the agent hit four distinct blockers, reported failure truthfully, and iterated to something that held.

Blocker 1
Page scrape returned no video

A sub-agent read the page copy but got no actual video content — and told me so directly instead of pretending it had.

Blocker 2
No caption tracks to pull

Trying yt-dlp and checking the embedded player for subtitle tracks was a dead end — no captions existed at all.

Blocker 3
No static lesson URLs

Lessons loaded dynamically, so the agent had to systematically extract each embedded video ID rather than follow a link list.

Blocker 4
Early sub-agent exited

A first sub-agent quit after starting only 3 downloads. I had it spawn a proper long-running agent with a 12-hour timeout.

Resolved
Audio + Whisper pipeline held

Audio-only downloads feeding local Whisper (medium), lesson by lesson, overnight — ping every 5 until 34/34 pipeline complete.

5/3410/3415/3425/3430/3434/34 ✓
Before / After

Locked video → searchable text.

The whole course, overnight
Before20+ hrscaption-less, paywalled, embed-only video
After34 filesword-for-word transcripts + master doc, by morning
My Role

I set the goal and made the tradeoff.

I set the objective, rejected the good-enough first pass, and made the key engineering call — medium Whisper, run overnight, audio-only.

I directed each pivot when the agent hit a wall — spawn a proper long-running agent, systematic video-ID extraction, a 12-hour timeout — and set the reporting cadence (ping every 5). The agent did the extraction and transcription; I owned the goal, the quality-versus-speed decision, and the supervision loop.

Skills Demonstrated

What this took.

Agent-directed data extraction from a hostile sourceLocal speech-to-text pipeline design (Whisper)Model quality / speed / cost tradeoff decisionsLong-running / timeout-bounded orchestrationIterative failure-recovery & pivotingDynamic-LMS & embed-only scraping constraintsProgress-reporting / human-in-the-loop supervisionOvernight unattended batch processing

Want an operator who engineers around the wall instead of stopping at it?