video-cut
Executes an agent's editing decisions: validates clip_plan.json, snaps cut points to safe scene/sentence boundaries, and concatenates the source video into edited_source.mp4.
Image & VideoAdvanced★ 470⑂ 86AI score 8/10Last updated: Aug 24, 2026
What it does
- Validates and normalizes
clip_plan.json(source-time start/end ranges) intoclip_plan_validated.jsonwithclip_id, source/output times and durations. - Concatenates the chosen ranges into
edited_source.mp4. Deterministic output; the render is reused when it is newer than the clip plan. - Enforces cut-boundary safety: it first snaps to nearby hard cuts to avoid flash frames (
SCENE_CUT_SNAP, margin 0.5s, detect threshold 0.4), then snaps to reliable sentence ends / silence windows. If ASR says the in/out point is mid-speech and cannot be snapped, it blocks withunsafe_clip_sentence_boundary. - Overlapping/duplicate source ranges are rejected by default;
--allow-overlaprequires narration lines to carrysource_clip_id. Same-source continuous joins are lossless with no mid-sentence fades; non-continuous joins get anti-pop fades inside safe pauses. - Legacy single-stage mode also maps source-time narration into
narration_mapped.json; the orchestrated flow uses--no-narration-mapand stops after the cut.
Who it's for
- Builders of agent-driven recap / video-summary pipelines who want the LLM to make creative choices while a script handles technically safe cutting.
- Editors automating ffmpeg-based assembly who keep hitting half-sentence audio and jarring joins.
- Intermediate-to-advanced users comfortable with Python + ffmpeg CLI; the docs are written in Chinese.
Examples
- With ASR data and
speech_boundary_anchors.jsonfrom the understanding phase, the agent drafts rough ranges, then runspython3 scripts/cut.py movie.mp4 --work-dir work --target-duration 10m --no-narration-mapand writesnarration.jsonagainst the output timeline. - To audit rapid cutting, recall candidates with
ffmpeg -i input.mp4 -vf "select='gt(scene,0.35)',showinfo" -an -f null -, then classify them as original short shots, flash-like shots needing extended IN/OUT, or artifacts of this concatenation. - To intentionally reuse a source moment twice, enable
--allow-overlapand tag each narration line withsource_clip_idfor disambiguation.
· · · 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/zenstory-ai/video-recap-skills/HEAD/skills/video-cut/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-cut folder from the GitHub repo zenstory-ai/video-recap-skills into my ~/.claude/skills/zenstory-ai-video-cut/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/zenstory-ai/video-recap-skills.git && mkdir -p ~/.claude/skills && cp -r video-recap-skills/skills/video-cut ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal in your working folder.
- Clone the repo:
git clone https://github.com/zenstory-ai/video-recap-skills.git - Create the skills folder:
mkdir -p ~/.claude/skills - Copy this skill:
cp -r video-recap-skills/skills/video-cut ~/.claude/skills/ - Verify prerequisites:
python3 --versionandffmpeg -versionmust both work (macOS:brew install ffmpeg). - Prepare a
work_dircontaining the source video and aclip_plan.json. This skill never picks clips itself, so also install the repo's understanding/planning skills for the full two-stage flow. - Restart Claude Code and ask something like "cut the video using this clip plan" to trigger the skill.
View source on GitHub ↗License: MIT