AI & Work

I built a system to post video every week.

I tell the people I coach to record themselves. Watch it back, fix what you see, do it again. I have not been doing it myself. Posting video regularly means recording, editing and a lot of small jobs in between, and I have only so much time.

So I built a system that does everything except the parts only I can do. This post covers how it works, what I refused to let it do, and what the first video cost.

Where the idea came from

Neeraj Shah wrote up the system he uses to make Shorts with Claude Code: eight agents, a Notion board and four points where he approves the work (his write-up). I took his structure and changed the parts that did not fit how I work.

How it works

Everything starts with something I have already written. Each video argues one point from a post on this blog.

  • Once a month, Claude proposes which posts become videos and drafts the scripts. I approve the plan and every script.

  • I record them all in one sitting.

  • Claude Code, running on my Mac, transcribes the footage, finds each take, cuts false starts and dead air, and adds captions and graphics in this site's colours and fonts. Each recording becomes one long video and two Shorts.

  • It checks its own work against a written spec: size, format, loudness, and whether a graphic covers my face.

  • It stops at a draft. For now I upload the finished files myself; my CMS will take video drafts next.

The editing tools are ffmpeg for cutting, whisper.cpp for transcription and HyperFrames for graphics. All three are free and open source, and the footage is transcribed and edited on my Mac.

Four decisions stay with me

What gets made. What gets said. The recording itself. Whether the finished video goes out.

Two rules sit underneath those. Every fact in a script has to trace back to my own writing or to a source I can link to, and if it cannot, the script is blocked. The scripts are also checked by the same code that checks my blog posts, so my banned words and filler phrases are flagged before I read a line.

What I said no to

Many people building AI video use an AI avatar: a digital copy of their face and voice, reading scripts they never recorded. I teach communication. If a clone did my talking, I would be undercutting the thing I teach. So I record, and the machine edits.

What the first video taught me

I recorded one take on my iPhone: eight minutes and fifty-four seconds. I took liberties with the script, so the edit worked from what I said, not from what was written.

The first cut had rough joins. Claude placed the cuts using the transcript's word timings, which can be off by a fifth of a second, so words were clipped. On the second pass it measured the sound around each cut and placed every cut in real silence. I still found three joins that were not clean and gave it the times. The third pass fixed those, and fixed something I could hear but not name: each section had been encoded separately, which left a few milliseconds of padding at every join.

It left my pacing alone once told. I say some lines slowly on purpose. The rule now is that only pauses longer than a second and a half get trimmed.

It flagged a word I chose to keep. I used a word from my own banned list on camera. The check caught it. I kept it.

The audio needed balancing. Some passages spiked and some were soft. Compression brought the spread between them down from 8.5 to 3.6 loudness units, at the -14 LUFS level YouTube uses.

My phone was recording where I was. The iPhone writes the GPS location into every video file. Every render now strips it, and the checks fail any file that still carries it. I would not have caught that on my own.

The branding took three rounds. The first animated logo looked plain and far too green. I made a 3D logo reveal in Gemini instead, and Claude trimmed it to 3.6 seconds and made the sound for it. For the ending, Claude first put the blog address over a slow-moving shot of the logo, and the text did not move with the camera. It looked pasted on. Now a short card says where the full write-up is, then the logo plays on its own.

The graphics pass checked itself, and caught real problems. Claude Code built the on-screen cards and captions. Before building, it transcribed the audio again and found the transcription had invented a "Bye" at the end and dropped "its first test" in the opening minute. It fixed both in the captions. It dropped a card that would have mixed my two brands' colours, because my rules forbid that. It moved my name strap after finding my shoulder sat where I had planned it. It also confirmed that nothing in the render was sending footage anywhere.

I still caught the last one. In the finished cut, the old end card flashed green for a fraction of a second before the new ending. A one-line fix, but I found it by watching. The machine did not.

Each of these is now written into the editing instructions, so the second video starts where the first one ended.

What it cost

Software: nothing extra. ffmpeg, whisper.cpp and HyperFrames are free. Finished files sit on Cloudflare R2 only until they post, which keeps them inside its free tier.

For comparison: my current editor costs me $30 to $40 a video.

Claude: I am on the $20 Pro plan. The first video, including designing the whole system, used most of one five-hour usage window and about a dollar of extra usage. Most of that went on one-off work: writing the rules, fixing the joins, designing the logo animation. Once I saw the numbers, the final assembly went into a script I ran myself in Terminal, which used no Claude usage at all. Whether a normal month fits in $20 is what the second video will tell me. If it does not, the $100 plan is still cheaper than an editor.

My time: the plan is one shoot day a month and an hour or two of approvals. This first one took an afternoon.

Next

The video above is the first one through the system. The second will show whether the cost holds once the one-off work is done. I will report back here.

Send feedback

Goes to my inbox. Nothing is published.

All posts