Drop in short Hudl clips of one player, get a coaching report as a single HTML file (annotated stills inlined, responsive) that can be emailed and read on an iPad.
Pipeline: ffmpeg samples frames per clip → Claude vision analyzes each clip (good / fix
moments with timestamps, themes, coaching note, key moments to annotate) → stills are
annotated with Pillow → a second Claude pass writes the cross-clip summary (strengths,
areas to improve, why it happens, development plan) → report.html.
Requires Python 3.11+, ffmpeg/ffprobe on PATH, and an Anthropic API key.
pip install -r requirements.txt
export ANTHROPIC_API_KEY=sk-ant-...
- Put the clips in a folder (they are numbered in filename order).
Optional
clips.csvin that folder:filename,title,url—titleis the coach's Hudl tag,urlis a per-clip Google Photos link. - Copy
examples/game.toml, set the player, jersey color, game title and album link. - Run:
python -m film_review ./clips --config game.toml --out ./out
Result: out/report.html. Attach it to an email. Flags:
--album URLGoogle Photos album link (shown at the top of the report)--embed-videosembed 360p copies of each clip so they play inside the file (much larger file)--model IDoverride the model--mockoffline test with fake analysis, no API call
Per-clip analyses are cached in out/.work, so re-runs only pay for new or changed clips.
- Claude sees sampled stills (default 3 fps), not continuous video. The report flags clips where the jersey number could not be read and the player was placed by position.