From video-recap-skills
Cuts a long video into selected source ranges (montage/clip assembly) using a clip plan. Produces edited_source.mp4 and optionally remaps narration timestamps.
How this skill is triggered — by the user, by Claude, or both
Slash command
/video-recap-skills:video-cutThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Takes an agent-authored **clip plan** (which source ranges to keep, in order) and:
Takes an agent-authored clip plan (which source ranges to keep, in order) and:
clip_plan_validated.json (clip ids, source/output times, total duration, overlap checks). Boundaries are then snapped to natural pauses (SNAP_CLIP_LINE_END) and nudged clear of the original footage's hard cuts (SCENE_CUT_SNAP, see below).edited_source.mp4.narration.json against the output timeline (0 .. total seconds). Invoked by recap.py with --no-narration-map.--no-narration-map: maps narration written in original-video time onto the cut output timeline → narration_mapped.json.It is stateless: given the same inputs it reproduces the same outputs. Caching is just
"reuse edited_source.mp4 if it is newer than clip_plan.json".
work_dir/clip_plan.json — a JSON array, or {"clips": [...]}. Each clip:
{"start": 12.0, "end": 28.5, "reason": "inciting incident"}
start/end are original-video seconds (aliases source_start/source_end or in/out accepted).
Optionally target_duration at the object top level (e.g. "10m").
work_dir/narration.json (optional, legacy single-pass path only) — segments with original-video start/end + narration text, consumed only when --no-narration-map is NOT passed.
Each segment may carry source_clip_id to disambiguate when overlapping clips are allowed.
python3 scripts/cut.py <video> --work-dir <work_dir> \
[--target-duration 10m] [--clip-padding 0] [--allow-overlap]
clip_plan_validated.json — normalized clips with clip_id, source_start/end, output_start/end, duration.edited_source.mp4 — the concatenated source video (the new shortened timeline).narration_mapped.json — (legacy single-pass path only) narration with start/end rewritten to output time and source_clip_id set. NOT produced in the orchestrated flow (recap.py --no-narration-map).In the orchestrated flow, downstream (voiceover + assemble) treat edited_source.mp4 as the video and narration.json (written by the agent against the output timeline) as the narration.
clip_plan.json and narration.json are original-video time; this tool does the source→output remap. In the orchestrated path, narration.json is written by the agent directly in output-timeline time — no remap is performed.--allow-overlap is set; with overlap, narration should set source_clip_id.SCENE_CUT_SNAP, default on). A clip boundary that lands a few tenths of a second from a hard cut in the original footage shows a brief sliver of the adjacent shot that then cuts again — a visible 闪烁/flicker at the edit point. After the natural-pause snap, each source_start is moved forward onto, and each source_end back onto, any original shot-change within SCENE_CUT_SNAP_MARGIN (default 0.5s; detected with ffmpeg's scene metric at SCENE_CUT_DETECT_THRESHOLD, default 0.4). Boundaries already on a cut, or with no nearby cut, are untouched; snaps that would shrink a clip below ~0.5s are skipped. Set SCENE_CUT_SNAP=0 to disable.npx claudepluginhub worldwonderer/video-recap-skillsEdits video by conversation: transcribe, cut, color grade, overlay animations, burn subtitles. For talking heads, montages, tutorials, travel, interviews.
AI-assisted video editing workflow for cutting, structuring, and enhancing real footage using FFmpeg, Remotion, ElevenLabs, and fal.ai. Activates when users want to edit video, trim clips, make vlogs, or build video content.
Creates 3 AI-edited sizzle reel variations from a video using Adobe Quick Cut. Use when users want to cut, trim, or shorten a video into highlights.