video-shots — Shot Breakdown & Interactive Shot-List Report
Breaks a finished video into a per-shot analysis table (duration, shot size, category, camera move, framing) plus a single-file interactive shot-list report.
Image & VideoIntermediate★ 885⑂ 111AI score 9/10Last updated: Oct 9, 2026
What it does
- Uses ffmpeg scene detection + ffprobe to measure cut points, durations, frame rate and per-shot motion (median of inter-frame differences) — numbers come from code, never from model guessing.
- The model only fills in the five judgment fields: shot size, category, camera move, framing description, rhythm.
- Extracts two keyframes per shot (15% and 85%) and tiles them into contact sheets so ~25 shots can be judged at once; comparing a/b reveals the camera move.
- 15 deterministic quality gates, including a motion cross-check that blocks the classic hallucination "claims a push/pan but measured motion is ~0".
- Outputs
shots.json, a Markdown shot table, and a zero-dependency single-file HTML report: synced video player, rhythm strip, searchable/filterable/sortable shot table, distribution stats, cast, gate results, JSON export. - Missed or spurious cuts are fixed with
recut --split/--merge, which renumbers and recomputes automatically.
Who it's for
- Filmmakers and editors reverse-engineering reference footage.
- Marketers auditing ad/short-form pacing and asset composition.
- Film-study teachers and students needing accurate shot lists.
Example uses
- Run
seed → frames → sheet → validate → renderon a 3-minute brand film to get 53 shots with average shot length and cuts-per-minute. - Break down a competitor's short-form video to report "58% dialogue shots, 55% static camera" as evidence in a creative brief.
- Patch a dissolve the detector missed via
recut --split 63.5, re-extract frames, and iterate until all 15 gates pass.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/eternityspring/reelbench-skills/HEAD/skills/video-shots/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/video-shots folder from the GitHub repo eternityspring/reelbench-skills into my ~/.claude/skills/video-shots/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/eternityspring/reelbench-skills.git /tmp/reelbench-skills && mkdir -p ~/.claude/skills && cp -r /tmp/reelbench-skills/skills/video-shots ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Check prerequisites: run
node -v(needs >= 18),ffmpeg -version,ffprobe -version. On macOS install withbrew install node ffmpeg; on Ubuntusudo apt install nodejs ffmpeg. - Clone the repo:
git clone https://github.com/eternityspring/reelbench-skills.git - Copy the skill:
mkdir -p ~/.claude/skills && cp -r reelbench-skills/skills/video-shots ~/.claude/skills/ - Verify: run
node ~/.claude/skills/video-shots/scripts/selftest.mjsand confirm all 449 assertions pass (no API calls, no cost). - Restart Claude Code, then ask something like "do a shot breakdown of this video" or "build a shot list from video.mp4".
- Give the video path and an output directory; results land as
shots.json,frames/,sheets/,shots.mdandshots-report.html(open by double-clicking).
View source on GitHub ↗License: Apache-2.0