Original Reddit post

I record talking-head videos and the editing was costing me about two hours per twenty minutes of footage. So I built it as a skill. The interesting part wasn’t wiring up ffmpeg — it was that the first dozen versions produced edits that were technically correct and obviously machine-made. How it’s put together: Claude never watches the video. whisper.cpp transcribes locally, a script packs the result into a phrase-level reading view, and Claude reads that as text and writes cut decisions into an EDL. Audio is the only reliable clock — cut boundaries come from silence detection and word onsets, never from eyeballing frames. This also means a two-hour source costs the same context as its transcript. Two hard stop gates. It renders a rough cut and refuses to build captions, motion or sound until I approve it, because every downstream timestamp is derived from the cut and a late change invalidates all of them. Second gate is after the full render. The verify pass is where most of the value is. Two defects survive every automated check and both get noticed by viewers: a word left said twice at a seam, and a clause cut mid-thought so a sentence inverts its own meaning. So it re-transcribes the rendered cut in short windows aligned to each join, specifically hunting for those. A whole-file transcript hides both. Proof is captured, never mocked up. If the script names a repo or an article, Playwright opens the real page, screenshots it, and a zoom-and-highlight move composes over the cut. There’s a gate that fails the build if a real URL was named and nothing was captured — because the tempting failure mode for an LLM is to generate something that looks like a screenshot. What I’d actually flag as the lesson: every craft rule in the repo exists because I threw away a render. Captions appeared a beat before I spoke, so there’s now a rule that they start 0.08s after the word onset, never before. Sound effects passed every level check and were still inaudible under my voice, so “not clipping” was replaced with “measurably audible against a voice-only baseline”. Roughly forty of those, each written next to the failure it prevents. Handing Claude the tools produced a mediocre editor; handing it the list of mistakes produced a decent one. Runs locally — whisper, ffmpeg, HyperFrames for compositions. No API key beyond Claude itself. MIT. https://github.com/ranahaani/i-hate-editing I’d genuinely like to know where it falls over on someone else’s footage. It’s been tuned on one person’s talking-head videos and I assume there are whole categories of failure I haven’t hit. submitted by /u/ustype

Originally posted by u/ustype on r/ClaudeCode