Narrate Video
Timed, synced video voiceover via Azure/Gemini TTS with ffmpeg mux — avoids the amix-silence and audio-cutoff traps.
Test report
- Verdict
- Works with setup
- Score
- Tested
- Jul 15, 2026
- Environment
- Claude Code 2.x (agent harness)
- Upstream re-checked
- Aug 10, 2026 · 27ef433
Ran the real ffmpeg pipeline both ways on a 9s test clip: the naive baseline (single narration track dumped at the start) silently truncated the video to 4.5s via -shortest, while the skill's segment/adelay/amix(normalize=0) approach preserved the full 9s runtime with mean volume -17.6dB, right in the documented -25..-15dB target. Real friction: needs a paid Azure Speech or Gemini API key configured in ~/.narrate_video.env before it can actually synthesize speech.
Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works
- Installs cleanly 5/5
- Triggers reliably 5/5
- Output vs. baseline 9/10
- Docs & honesty 5/5
What Narrate Video does
Adds a professional voiceover track to any video by analyzing scene transitions, writing timed narration segments, generating speech via Azure TTS or Gemini 3.1 Flash TTS, and muxing with ffmpeg while keeping audio and visuals in sync. Triggers on requests to add narration, voiceover, commentary, or dubbing to a video, including screen recordings and Chinese-language phrasings like "视频配音".
How to install Narrate Video
git clone https://github.com/feiskyer/video-skills
mkdir -p ~/.claude/skills
cp -r video-skills/skills/narrate-video ~/.claude/skills/narrate-video
Skills live in ~/.claude/skills/ (global) or .claude/skills/
(per-project). Restart Claude Code after installing.
Commands — how to trigger Narrate Video
-
/narrate-videoTimed, synced video voiceover via Azure/Gemini TTS with ffmpeg mux — avoids the amix-silence and audio-cutoff traps.
It also activates on plain-language prompts like these:
-
Add a synced voiceover track to this screen recording using TTS -
Dub this product demo without the audio track getting cut off early -
This video needs narration timed to the scene transitions, add it please
Frequently asked questions
- Is the Narrate Video skill free?
- Yes. The skill itself is free from feiskyer/video-skills. SkillProof publishes the install command and an independent test verdict at no cost.
- Does Narrate Video work with Claude Code?
- We tested it with Claude Code 2.x (agent harness) on Jul 15, 2026. Verdict: Works with setup. Ran the real ffmpeg pipeline both ways on a 9s test clip: the naive baseline (single narration track dumped at the start) silently truncated the video to 4.5s via -shortest, while the skill's segment/adelay/amix(normalize=0) approach preserved the full 9s runtime with mean volume -17.6dB, right in the documented -25..-15dB target. Real friction: needs a paid Azure Speech or Gemini API key configured in ~/.narrate_video.env before it can actually synthesize speech.
- What is the Narrate Video SkillProof Score?
- 9.6/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 9/10, docs & honesty 5/5.
- How do I install Narrate Video?
- Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
- Can I use Narrate Video with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
- The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.