Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
Back to list

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 & VideoIntermediate15221AI 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

  1. "Do a shot breakdown of this 3-minute commercial" → seed detects cuts → review contact sheets → fill the four fields → validate passes → open shots-report.html offline.
  2. A dissolve got merged into one shot: run recut --split 63.5 --split 127.37 --merge 45.97 to fix boundaries with automatic renumbering and note tracking.
  3. For an English-language film, add --lang en so 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)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download 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.

  1. Open a terminal and verify prerequisites: node -v (needs 18+) and ffmpeg -version. On macOS install with brew install node ffmpeg; on Ubuntu sudo apt install nodejs ffmpeg.
  2. Clone the repository: git clone https://github.com/eternityspring/reelbench-skills.git
  3. Create the skills directory: mkdir -p ~/.claude/skills
  4. Copy the skill folder: cp -r reelbench-skills/skills/video-shots ~/.claude/skills/ — make sure scripts/, references/ and examples/ come along.
  5. Verify the install with the bundled self-test: node ~/.claude/skills/video-shots/scripts/selftest.mjs
  6. 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 GitHubLicense: Apache-2.0