← All projects

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.

Links