EPISODE 02 · 2026-09-15

Can AI build the machine that made this video before lunch?

Every video on this channel is made by code: a script goes in, a narrated, captioned 1080p video comes out, no editor. So I gave Claude Code one prompt and an empty folder and asked it to build that machine from scratch.

Source on GitHubThe promptWatch on YouTube
Video goes live 2026-09-15. Subscribe to catch it

This video wasn't edited by a person. A script went into a folder, and a narrated, captioned video came out. So this week I asked a harder question. Can Claude Code build that machine itself, from an empty folder, in one prompt? It took twenty three minutes, three prompts, and it FROZE on the very first run. Here's exactly what happened.

What the machine does

Some context. Every episode here's produced by code I built with Claude Code over about a DAY. A script file goes in with headlines and narration. ElevenLabs reads it and returns word timings. Remotion, a video framework that renders React to MP4, turns those timings into karaoke captions on the brand look. No timeline, no editor. That took me a day with a lot of back and forth. The question is whether ONE prompt gets there before lunch.

The prompt, word for word

Here's the prompt, word for word, and it's in the description. Build a tool that turns a script into a finished YouTube video with no editor. Input is a script file with scenes. Narration comes from ElevenLabs using the endpoint that returns word timings. Visuals come from Remotion, ten eighty p, dark background, these three colors, and the word being spoken gets highlighted. ONE command, script in, MP4 out. Include a sample script, a README, and actually run the build once so I know it works. That last line matters LATER.

The build, replayed at 2x

Twelve thirty three in the morning, prompt sent. This is the real session log replayed at about double speed. It read the prompt, loaded its Remotion knowledge, and wrote SEVEN files in a row. The package file, the Remotion root, a video component, a scene component with the caption logic, the build script, a sample script about itself, and a README. Then npm install, which took a minute, and it ran the build. FIFTEEN minutes from prompt to first run, and I had not typed a thing.

First run: narration works, then nothing

Watch the first run. Narration for all three scenes came back from ElevenLabs in under thirty seconds. Then bundling, then resolving the composition, then downloading a headless Chrome, which Remotion needs to draw frames. Eighty five of eighty five megabytes. And then NOTHING. Ten minutes of nothing. And here's the part I didn't expect. The AI didn't NOTICE. It had started the build in the background, said, I will wait for the notification, and stopped. The notification never came.

Second run: instant failure

So I killed it and ran the command myself. Same narration, same bundling, and then a clean error. NO browser found for rendering frames. Please open a GitHub issue. That's the first bug report I sent back, in plain words. It hung for ten minutes on the download, I stopped it, now it says no browser found, there is still no video.

Fix attempt one

Two minutes later it had a diagnosis. The Chrome zip had fully downloaded, but only TWO files came out of it, a readme and a license. The actual browser binary was missing. And because the folder existed, Remotion assumed the browser was installed and skipped the download every time after. So it added a repair step that deletes a half extracted browser and downloads it AGAIN with a progress bar. Then it ran the build in the background again, said it would wait, and stopped again.

Fix one: process ends, exit code 0

My turn. Ensuring headless Chrome is available. Detected incomplete install, clearing cache. And then the process just ENDS. Exit code zero, no error, no video. Second bug report, and this time I added one instruction a client would add. Run the build in the FOREGROUND and wait for it. I want to see the file exist.

Fix attempt two: the real cause

Three minutes. This time it went into Remotion ITSELF and found the real cause. The zip extractor bundled inside Remotion stops silently after TWO files on this Mac. Nothing it wrote in the build script could fix that. So it stopped trusting Remotion to fetch the browser at all. It downloads the zip itself, unpacks it with the system unzip, and hands Remotion the path to the binary. Then it ran the build in the foreground, watched it to the end, and reported a real MP4.

Clean run, one command

I didn't take its word for it. I wiped the output, the audio, and the browser cache, and ran the one command from NOTHING. Browser downloaded and unpacked, three scenes narrated, eight hundred and thirty six frames rendered. TWENTY seven seconds, start to finish, and the file exists.

The video it made

And this is the video it MADE. Brand colors from the prompt, a headline per scene, and captions that highlight the word being spoken, in my cloned voice. It even wrote its own three scene script about itself. It's plainer than the real pipeline. No lower thirds, no screen recordings, no shorts. But if you handed me this on DAY one, it would've saved me most of a day.

Verdict

Verdict. Would I replace my pipeline with this? NO. Mine has B roll slots, lower thirds, and shorts, and this has headlines and captions. Would it have saved me a day when I started? YES, easily. The lesson is the last line of the prompt. Actually RUN it once so I know it works. Without that line I would've received seven beautiful files and a bug I found a week later. With it, the AI found the bug, mostly, and I found the AI waiting for a notification that was never coming.

Scorecard

23 minutes, 3 prompts, 77 turns
Bug: a dependency's unzip fails silently
Habit: it stopped to wait, twice
Cost: $0 on top of Claude + ElevenLabs plans

Scorecard. Prompt at twelve thirty three, working pipeline at twelve fifty six. Twenty three minutes, three prompts, SEVENTY seven turns of the AI reading, writing, and running things. One real bug, and it wasn't in the code it wrote. A dependency's zip extractor fails silently on this machine, and it took two rounds to stop trusting it. One bad habit, and that one was the AI's. TWICE it started the build in the background, said it would wait, and stopped, so the build died with it. Cost, nothing on top of two plans I already pay for. Claude for the building, and ElevenLabs for the voice, and the voice is a real monthly bill, not a free tier.

The prompt, word for word

Build me a tool that turns a script into a finished YouTube video, with no video editor. - Input: script.json with a title and a list of scenes. Each scene has a headline and the narration text. - Narration: ElevenLabs text-to-speech. The API key and voice ID are in .env (ELEVENLABS_API_KEY, ELEVENLABS_VOICE_ID). Use the with-timestamps endpoint so we get word timings for captions. Model eleven_v3, mp3 output. - Visuals: Remotion. 1920x1080, 30fps. Dark background #0B0F19, headline in #C6FF3D, accent #FF7A1A, text #F5F5F0. Each scene shows its headline plus animated captions with the word currently being spoken highlighted. Scene length = narration length. - One command: `node build.mjs script.json` -> out/video.mp4. No manual steps in between. - Include a sample script.json (3 short scenes about this tool itself), a README, and actually run the build once so I know it works.

Next: my actual App Store idea

This post is the episode's script. The narration in the video is an AI clone of the host's voice; the apps were generated by Claude Code and are shown as recorded. Tools: Claude Code on a paid Claude subscription, ElevenLabs on a paid plan, Remotion (free for individuals). Not sponsored.