video-shots · Shot-by-Shot Video Breakdown
Turns a finished video into a measured shot list — duration, shot size, category, camera movement, description — plus a single-file interactive breakdown report.
Image & VideoIntermediate★ 152⑂ 21AI score 9/10Last updated: Sep 11, 2026
What it does
- Uses ffmpeg scene detection to measure cut points and shot durations (two decimals) and computes each shot's real motion from the median of frame-difference values.
- The model only judges four things — shot size, category, camera move, on-screen description — and every judgement is cross-checked by 14 deterministic quality gates. Claim a pan/push but measured motion is near zero? Blocked.
- Extracts head (15%) and tail (85%) keyframes per shot and tiles them into contact sheets, so ~25 shots fit one screen and a/b comparison reveals camera movement at a glance.
- Outputs
shots.json, a Markdown shot table, and a single-file interactive report: embedded player with synced shot highlighting and click-to-seek, rhythm strip, searchable/filterable/sortable shot table (list + card views, side-by-side keyframes), 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
- Directors, editors and ad creatives who reverse-engineer reference footage
- Content creators who need quantified edit rhythm (average shot length, cuts per minute)
- Marketers auditing product shots and title cards in ad assets
- Prerequisites:
node>= 18,ffmpeg,ffprobe. No API key, no npm dependencies.
Examples
- "Do a shot breakdown of this 3-minute commercial" → seed detects cuts → review contact sheets → fill the four fields → validate passes → open
shots-report.htmloffline. - A dissolve got merged into one shot: run
recut --split 63.5 --split 127.37 --merge 45.97to fix boundaries with automatic renumbering and note tracking. - For an English-language film, add
--lang enso gate names, violation messages, taxonomies and the report UI all switch to English.
· · · 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.
- Open a terminal and verify prerequisites:
node -v(needs 18+) andffmpeg -version. On macOS install withbrew install node ffmpeg; on Ubuntusudo apt install nodejs ffmpeg. - Clone the repository:
git clone https://github.com/eternityspring/reelbench-skills.git - Create the skills directory:
mkdir -p ~/.claude/skills - Copy the skill folder:
cp -r reelbench-skills/skills/video-shots ~/.claude/skills/— make surescripts/,references/andexamples/come along. - Verify the install with the bundled self-test:
node ~/.claude/skills/video-shots/scripts/selftest.mjs - Restart Claude Code, cd into the folder holding your video, and ask for a "shot breakdown of this video" to trigger the skill.
View source on GitHub ↗License: Apache-2.0