Overview
VodCut takes a long stream VOD and turns it into short-form vertical clips and DaVinci Resolve timelines. The whole thing runs locally on my own machine — no cloud transcription bills, no per-minute API fees, zero marginal cost per video.
Two-phase pipeline
The pipeline is split into an expensive "analyze" phase and a cheap "assemble" phase, with a single timeline.json file passing between them. Analyze does all the heavy lifting: FFmpeg's ebur128 filter for loudness, faster-whisper on the GPU for word-level transcript timestamps, and OpenCV to read game state — for League of Legends streams it measures minimap edge-density to tell in-game from lobby. A moment scorer then ranks highlights and lowlights.
Assemble is cheap and repeatable. It reads timeline.json and produces one of three outputs: "shorts" (9:16 vertical MP4s with burned-in karaoke captions), "reel" (a ~12-minute FCPXML you finish by hand in DaVinci Resolve), or "full" (a cleaned full-length FCPXML plus chapter markers).
Content-addressed caching
Analysis results are cached against a hash of the source video, so re-running only re-does the stages that have not already been computed. You can iterate on clip selection and captions endlessly without paying the transcription cost again — a --force flag re-runs from scratch when you actually want that.
The system is currently built around League of Legends via its minimap detection, but the moment-scoring backend is pluggable through a config file, so it can be pointed at other games.
Why local-first
Every "turn your VODs into clips" SaaS charges per minute of footage. For someone streaming regularly, that adds up fast and puts a meter on experimentation. Running FFmpeg, Whisper, and OpenCV locally means the only cost is my own GPU time — I can reprocess a whole back catalogue for free.