Stock Footage Matcher
A pipeline that cuts stock footage to a voiceover script.
The problem
Cutting stock footage to a voiceover by hand is slow and inconsistent: you read the script, search a stock library, judge whether a shot actually fits the line, then place it on a timeline. The judgement is the slow part. I wanted to automate the matching without handing the decision to something that would confidently pick a beach for a line about server latency.
Stack
- Python
- Embeddings
- LLM matching
- LLM-as-judge
- OTIO / EDL / XML
One decision, and why
Checkpoint every stage boundary to disk instead of re-running the whole pipeline after a failure.
The first version re-ran from stage one on any error, and a mid-run LLM timeout meant re-paying for embedding the entire script. Because the stages are sequential and each one's output is a clean input to the next, persisting state at the boundaries turns a failed run into a resume. The second design consequence was that I could then make each stage independently retryable, which is what made the pipeline survivable against flaky network calls at all.