Communitygithub.com

dharani2201-mini/auto-video-edit

Fully automated talking-head video editor. Turns raw camera footage into a finished video - cuts silences, punch-in zooms on the face, colour grade, voice mastering, animated stat/step/comparison/quote cards at the right moments, optional b-roll - with one command. Works for vertical reels/shorts and landscape YouTube. Use when the user drops footage and says edit my video, cut the silences, make this a reel, finish this video, or types /auto-video-edit.

What is auto-video-edit?

auto-video-edit is a Claude Code agent skill that fully automated talking-head video editor. Turns raw camera footage into a finished video - cuts silences, punch-in zooms on the face, colour grade, voice mastering, animated stat/step/comparison/quote cards at the right moments, optional b-roll - with one command. Works for vertical reels/shorts and landscape YouTube. Use when the user drops footage and says edit my video, cut the silences, make this a reel, finish this video, or types /auto-video-edit.

Works with✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dharani2201-mini/creator-skills/tree/HEAD/skills/auto-video-edit

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

/auto-video-edit: raw footage to finished video

Run the whole thing without stopping to ask. Fix errors and re-run until there's a good final-video.mp4.

SKILL_DIR below means the folder this file is in (normally ~/.claude/skills/auto-video-edit).

1. Check the setup (once)

ls SKILL_DIR/.venv/bin/python SKILL_DIR/remotion/node_modules/.bin/remotion

If either is missing, run the repo's install.sh, or do it by hand:

python3 -m venv SKILL_DIR/.venv && SKILL_DIR/.venv/bin/pip install -r SKILL_DIR/requirements.txt
cd SKILL_DIR/remotion && npm install && npx remotion browser ensure

Also needs ffmpeg, ffprobe and node on PATH (macOS: brew install ffmpeg node).

2. Run the pipeline

In the folder with the footage (the biggest video file there is used unless you name one):

bash SKILL_DIR/scripts/run_all.sh                 # or: run_all.sh my-take.mov

It runs three steps, each also runnable on its own with SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/<step>.py:

StepDoesWrites
edit.pyfinds speech, cuts silences > 0.5 s (keeps 0.15 s air), splits into ~4.5 s shots, picks normal / punched (1.3×) / tight (1.5×) per shot from the words, centres zooms on the detected face, grades colour, masters the voice to -14 LUFS, 10 ms fades at every cutedited-video.mp4, work/transcript.json, work/edit_report.json
animate.pyfinds moments that need a visual: numbers with units → Counter, "A vs B" / "instead of" / before-after → Comparison, 3+ "first / then / finally" sentences → Flowchart, strong claims ("the truth is", "most people", …) → TextCard; about 1 card per 15 s, never in the first 2.5 s; renders each card at the video's size and fpswork/animation_plan.json, animations/*.mp4, work/animation_manifest.json
finalize.pycuts every card in at its time with soft fades; if a broll/ folder exists, cuts in clips whose file names match spoken words (broll/coffee.mp4 → "coffee") for 3 sfinal-video.mp4, work/finalize_report.json

Useful flags: edit.py --no-zoom, --whisper small (better transcript, slower), --silence-db -35 (quiet room) / -25 (noisy room), --min-silence 0.35 (tighter cuts). animate.py --max 3, --min-gap 8.

3. Make the cards smart (do this every time)

The automatic plan uses rules. Improve it with the transcript before the final render:

  1. SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --plan-only
  2. Read work/transcript.json and work/animation_plan.json. Edit the plan:
    • Rewrite every headline / label / steps / value into 2–6 punchy words that say what the speaker means (not a fragment of the sentence). Fix numbers the transcript misheard.
    • Drop cards that don't help understanding; add a card where a key number, list or contrast has none. Card types and props:
      • Counter: {"to": 75, "decimals": 0, "prefix": "$", "suffix": "%", "label": "..."}
      • Comparison: {"left": {"label": "Before", "value": "4 hours"}, "right": {"label": "After", "value": "10 min"}}
      • Flowchart: {"steps": ["Record", "Upload", "Post"]} (2–5 steps)
      • TextCard: {"headline": "Nobody talks about this", "body": ""}
    • Each card needs "start" (seconds in edited-video.mp4) and "seconds" (3–5).
  3. SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --from-plan
  4. SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/finalize.py

4. Check the result

  • Read work/edit_report.json and work/finalize_report.json: duration shrank sensibly, no warnings.
  • Grab frames to look at: ffmpeg -ss 5 -i final-video.mp4 -frames:v 1 -y work/check.jpg (and at each card's start + 1 s). Look at them: face in frame on zoomed shots, cards readable, nothing cut off.
  • If a zoom crops the face badly, re-run edit.py --no-zoom. If cuts feel choppy, use --min-silence 0.8.

If something fails

Every step writes its full ffmpeg / Remotion output to work/*.log. Read the last lines, fix the cause, re-run that step only. Common ones:

  • whisper unavailable → the venv is missing; install it (step 1). The edit still runs without zoom choices.
  • Remotion Could not find a browser → cd SKILL_DIR/remotion && npx remotion browser ensure.
  • A card fails to render → it is retried as a plain TextCard, then skipped; the video still finishes.

Report

--- VIDEO EDIT COMPLETE ---
Input / Output / Duration before → after / cuts / zoom mix / cards / b-roll / file size

Then name anything you couldn't fix.

Related Skills