| name | video-cut |
| category | video |
| primitive | null |
| description | Edit raw footage into a finished cut by conversation, fully local. Drop clips in a
folder, describe the video you want, get edit/final.mp4 back. Local-first raw-footage
video editor — the editorial counterpart to the generative Remotion/launch-video skills.
Uses a two-layer reading system (local faster_whisper word-level transcript + on-demand
timeline_view composite) so the agent cuts with word-boundary precision without ever
dumping video frames — llm-as-index applied to video. Swaps cloud ElevenLabs Scribe for
local faster_whisper: free at any volume, nothing leaves the machine, no API key. Removes
filler/dead-air, color-grades per segment, burns subtitles, composes overlay animations
via Remotion, and self-evaluates the render before showing you.
USE WHEN: edit this footage, cut these clips, make a video from this raw footage, remove
filler words from video, trim this recording into a video, edit talking head, montage,
tutorial cut, interview edit, turn these clips into a launch video.
NOT FOR generating video from scratch (use launch-video / Remotion /
cloned-voice-pitch-pipeline), audio-only cleanup (use AudioEditor), or static images
(use Art).
Triggers on: edit footage, cut clips, video-cut, raw footage to video, remove filler
from video, trim video, talking-head edit.
|
| license | MIT |
| author | broomva |
| required | false |
| tags | ["video","video-editing","ffmpeg","faster-whisper","local-first","llm-as-index"] |
| compounding | ["Remotion","launch-video","content-creation","cloned-voice-pitch-pipeline"] |
video-cut — local-first raw-footage video editor
Drop raw clips in a folder → describe the cut → get edit/final.mp4. Fully local. The
editorial counterpart to our generative video skills (launch-video, Remotion,
cloned-voice-pitch-pipeline). Compounds on browser-use/video-use:
same two-layer reading architecture, but local ASR instead of cloud ElevenLabs Scribe.
Core principle — two-layer reading (never dump frames)
The agent reads video through two cheap layers, not by watching frames:
- Transcript layer —
transcribe_local.py runs faster_whisper with word-level
timestamps (local, MPS/CPU). Packed into takes_packed.md (~tens of KB) — the primary
reading artifact. This is the routing projection.
- Visual layer (on-demand) —
timeline_view.py <video> <start> <end> renders a
filmstrip + waveform + word-label PNG only at decision points (ambiguous pauses,
retake comparisons, cut-point checks). Never a scan — the body-grep expansion.
This is research/entities/pattern/llm-as-index-architecture.md applied to the video
modality: raw frames = the substrate you never dump; transcript = the projection that
routes; timeline_view = on-demand expansion. (See references/local-asr.md.)
Pipeline
Transcribe (local) → Pack → LLM reasons (proposes plain-English strategy, waits) →
EDL → Render (ffmpeg) → Self-eval (≤3 correction loops) → final.mp4
The EDL (edl.json) is the declarative cut IR — cut ranges + grade + overlays +
subtitles in one file. Decouples decision (the agent) from render (ffmpeg). Full
schema in references/edl-format.md.
Hard Rules (non-negotiable production correctness)
These are inherited from video-use's hard-won list. See references/hard-rules.md for the
ffmpeg specifics. Summary:
- Subtitles applied LAST in the filter chain, after every overlay.
- Per-segment extract → lossless concat (
-c copy). Never double-encode.
- 30 ms audio fades (
afade) at every cut — no audible pops.