I built a podcast production line that pauses exactly once
A voice memo goes in; an edited, captioned, rule-checked episode waits at a human gate. A build log on the new episode production line: an AI editor hired onto a one-episode contract, a free ffmpeg-and-Whisper floor standing behind it, two QA rungs, and a trust posture that never believes an unsigned callback. Plus what a line like this is for, and when you should not build one.
Publishing a podcast episode by hand is about eleven chores pretending to be one. Record. Level the audio. Cut the filler words, transcribe, caption, run the checks, upload, stamp the feed, cut the promo clips. This week I built a production line that handles the middle of that list from a single voice memo, and it stops exactly once: to ask a human whether the episode is any good. Below: how it works, what it costs to run, and how you'd know if you actually need one.
Eight stops, one pause
Whatever the phone recorded, the first stop makes broadcast-shaped. Validate the file, then normalize loudness to the standard podcast window. My 26-minute test recording came out at −19.45 LUFS against a −19 target. An app like Overcast expects that number; a laptop microphone will never produce it unassisted.
The second stop is where it gets interesting. An AI editor strips the ums, cleans the room tone, tightens any silence over two seconds. I'll get to its employment terms.
Captions are Whisper's job. It's a speech-to-text model running on my own build machines, and a 30-minute episode transcribes in roughly seven minutes of free CI time. That output isn't a transcript stuffed in a drawer. It becomes the caption files players load.
After that, quality assurance in two layers. The deterministic one re-measures the encoded audio (spec, loudness window, caption coverage) and fails loud on any miss. The judgment layer hands a language model the full transcript to read against my published-content rules and the episode brief. I built it to overblock. Borderline or malformed, and the episode parks rather than passes.
A person enters last. I play the edited cut against the raw one and approve or reject. Nothing here publishes itself. The gate is the product.
The editor is on a one-episode contract
The edit pass runs on Descript, a hosted AI audio editor, for $24 a month. But I built the fallback first, before spending a dollar: an editing floor of ffmpeg and Whisper that costs nothing and runs forever. Descript only keeps its seat if the edited cut beats the raw cut at the human gate on a real episode. Lose that, and the subscription dies. The floor takes over. Same shape either way, one swapped part.
The edit happens in a vendor's cloud, but the recipe that made it lives in my repo.
The recipe lives as a versioned prompt, committed next to the code. Strip the filler. Apply studio sound. Tighten silences. Then the part I care about most: an absolute ban on rewriting, reordering, or synthesizing a single thing I said. The editor tightens the episode. What I said stays what I said. And every job snitches on itself - it reports how many media minutes and AI credits it burned, and the pipeline dumps that into a per-episode manifest. That's how the whole lane stays inside a $50-a-month ceiling I can audit right from the repo.
Trust the vendor, not its doorbell
Here's one design decision worth pulling out, because it shows up in any pipeline that waits on someone else's cloud. When the editor finishes a job it can ring you back. A callback: a small automatic message saying done. Trouble is, Descript's callbacks are unsigned. Guess the address and you can ring the same bell. So I treat a callback as a doorbell, no more than that. It might wake the runner up. But the thing that actually completes a job is the pipeline calling the vendor's API on its own, with its own credentials, and reading what comes back.
What a line like this is for
Strip away the podcast specifics and here's what's left: a recurring recording goes in, a checked, captioned, publishable thing comes out, and a human signs off on each one. That fits way more than my setup. A weekly show, sure. Course lectures turning into captioned modules. A church or meetup publishing every talk without drafting some poor volunteer into editing duty. Client interviews becoming searchable, quotable transcripts. Internal briefings people can actually listen to. The stops change. The shape stays: machine steps, one AI pass on a fixed recipe, one human gate.
What I am using it for
This line feeds The Legibility Desk, my critique podcast. Every episode is already a cited, verifiable page. The audio was always the missing half. It runs next to Between Systems, my interview show, and eventually everything I make flows into the site radio, the continuous player for this site's own narrated audio. The pipeline runs on the same house pattern as the workflow engine I wrote about in June: AI does the volume, gates do the judgment, and the human stays load-bearing.
When I would not build this
Here's the honest guidance. If you publish occasionally rather than on a cadence, skip all of this and edit by hand in any decent app. A production line pays for itself through repetition or not at all. If you don't already have somewhere for files to live and jobs to run, go with a hosted end-to-end tool, because the storage and the runners are most of the plumbing anyway. And if your show is multi-speaker interviews? This exact line rejects your files on purpose. Separating voices is a whole other problem, and mine's deferred until the solo line has earned its keep.
Maybe your team has a pile of recordings and a publishing chore nobody wants. That's the thing I build. Email me at jake@jakelawrence.xyz with what goes in and what should come out. I'll tell you straight whether you need a pipeline or just an afternoon of ffmpeg.
Get the next one
An occasional note when something genuinely new ships here — essays, free tools, projects. No schedule, no filler, easy out.
Need something like this built?
I design and ship AI tools, full-stack apps, and data pipelines — end to end, to production. Tell me the problem in a sentence; I'll give you an honest read on fit within a day.
Work with me →