Turns raw camera and screen recordings into a tight, branded, captioned cut using a scripted command-line pipeline.
Takes a raw talking-head recording, optionally plus a screen recording, and returns a finished video file: double-takes and dead space cut, camera and screen composed, graded, levelled to -16 LUFS, and for vertical, karaoke captions and a white hook title burned in. It ships three profiles (course, youtube, vertical) that set crop math, box positions, caption style, B-roll density and pace. It is the orchestration layer over ffmpeg, whisper and a Node render pipeline, so the value sits in the cutting rules and the verification loop rather than in the tools themselves. Output is delivered versioned as <name> - EDITED vN.mp4, never overwriting a previous cut.
This skill has no button. You start it by saying what you want. Any of these will do it:
| If you actually want | Use this instead |
|---|---|
| slicing an already-finished long video into short clips | video-repurposer |
| turning a finished video into threads, posts or summaries | content-repurposer |
| writing the feed caption that ships alongside the export | social-caption-writer |
| generating footage that does not exist yet | video-prompt-builder |
| the visual direction behind generated footage | creative-director |
| What you need | Why | |
|---|---|---|
ffmpeg and ffprobe on your PATH | every measurement, cut, grade and render runs through them, so nothing starts without both | Required |
whisper-cli plus at least one whisper model file, for example small.en | no transcript means no take detection, no word-level cut boundaries and no verification gate | Required |
Node.js with hyperframes runnable | it builds the motion-graphic B-roll cards and is the primary path for vertical karaoke captions | Required |
Your own Gemini API key on a paid tier, set as GEMINI_API_KEY | it powers the optional step 8b listening gate at roughly $0.10 per 13-minute video; the analyzer script it calls is bundled with the plugin, so a paid key is the only thing you supply. Without it you get a structurally checked render that may still contain audible stutters | Optional |
| The raw camera file, plus the screen recording if the video is a demo | the skill edits your footage; it never generates any | Required |
| A local scratch folder outside any synced cloud drive | working inside Drive, Dropbox or iCloud causes sync churn on every intermediate render | Required |
| An active workspace with brand files for colours, fonts and verified claims | hook titles, B-roll cards and any authored on-screen text are claim-checked and brand-styled before rendering | Required |
This skill drives a real command-line toolchain, so there is a genuine setup step. On a Mac it is about fifteen minutes. It refuses to start rather than half-edit your video if anything mandatory is missing.
"Whisper" is at least six different products, and picking the wrong one is the most common setup failure. The wrong one installs perfectly and the skill still refuses to start.
This skill looks for a command called whisper-cli, and only whisper.cpp provides it. OpenAI's Whisper (openai-whisper on pip) gives you a command called whisper, which will not satisfy the check. Neither will faster-whisper, WhisperX, MacWhisper or Whisper Transcribe. If you installed Whisper and the skill still says it is missing, this is why.
All measuring, cutting, grading and rendering. Mandatory.
Transcription, take detection, and the free verification gate. This is the package that gives you whisper-cli.
Homebrew ships only a 562KB test fixture, which cannot transcribe anything usable. This step is the one people skip.
Needed for motion-graphic B-roll and karaoke captions. Not needed for a plain cut, so you can skip this and still get most of the value.
Only if you want the paid gate that catches audible stutters. Use a paid tier: a free key dies partway through a gate, quietly. Get one at aistudio.google.com/apikey.
One command. Every line should print something. If whisper-cli is the line that fails, re-read the box above.
vN file plus a report stating source and final duration, cut counts, and explicitly whether the listening gate ran.<name> - EDITED vN.mp4, with prior versions kept_video-edits/<name>/ holding the sources and every intermediatecuts.json, the machine-readable cut plan the render was built fromreport.json plus extracted frames for checking box position, caption legibility and aspect| The mistake | Do this instead |
|---|---|
| Checking the cut plan and calling it done | Verify the rendered output, not the plan. Whisper hallucinates missing words when transcribing the source, so a clipped word looks fine in planning and only shows up once you re-transcribe the render. |
| Pushing the silence threshold to -35dB or -40dB to catch more | Stay at -30dB. More sensitive settings grab room tone and leave long dead air in the output. If genuinely soft speech is being dropped, go to -33dB and verify. |
| Overwriting the previous cut with the new one | Every revision is a new vN file. Keep the prior cut so you can compare or revert. |
| Reporting a render as 'verified' when only the free gate ran | Say 'structurally checked (not listened to)' and warn that audible stutters may remain. Reserve 'verified' for a render where the paid listening gate actually passed. |
| Pasting the documented crop and position values straight in | Probe your own files and pull sample frames first. Those values were tuned to one specific camera and screen setup and will be wrong for a different rig. |
On pause-heavy speech, whisper word timestamps drift by seconds because whisper stretches words across silence, so never place a surgical retake cut from them there. Use the bundled energy profile script instead and put the boundary in a sustained low pocket, at least 60ms away from any rise in energy.