Reel Compiler
Ad reels compiled from a text file, not cut by hand.
The format my product ads use needs one or two posts a day, and every reel is the same video with different words. So the words became data and the video became code. I write the lines into a JSON file, run one command, and finished vertical mp4s come out. The tenth reel costs the same as the first.
batch.json 18 reels queued
claim guard BrainB07 REJECT "12k followers"
a figure a buyer reads as proof, and I cannot back it
claim guard 17 others pass
compile Remotion ok
render 1080x1920 h264 ok
out/ — 17 mp4s. the rejected one never rendered.
The whole design lives in one Remotion component, written once. Everything that changes between reels sits in batch.json: the lines on screen, where the stanza breaks go, which footage bed to use, how many frames into that clip to start so two reels on the same bed do not look identical, and the caption. The build script reads the list, compiles, and renders. The alternative was a separate video file per reel, which is copy-paste with a typo risk and gets worse every time you make one.
The part I care about is the claim guard. An ad is the one place a made-up number is unrecoverable, so the compiler refuses to render any reel whose text carries a figure a buyer could read as proof: a price paired with a volume, a follower or view count, a bare NNk. It fails the build with the offending line rather than warning, because a warning in a batch of eighteen gets scrolled past. The same guard was later ported to the carousel pipeline and hardened there against a table of twelve cases.
The renderer sits on top of an open-source Claude-driven editor by Hassan Aboul Hasan (hassancs91/claude-youtube-editor). That spine is his work, not mine. What I built is the compiler on top of it: the batch format, the reel design, the claim guard, and the pipeline that turns a content brief into a week of scheduled ads.
- Remotion
- data-driven rendering
- build-time validation gates
- Node scripting
- content pipeline automation
multi-week build
What it actually took. The build itself was a weekend. The judgement call was the guard: I was the only person who would ever see these reels before they went out, and I already knew I would eventually paste in a number that felt true and was not. Writing a check that blocks my own future self was worth more than any feature I could have added instead.
Private build. Built on hassancs91/claude-youtube-editor.