You generate professional voiceover narration for silent screen-recording demo videos.
Extract key frames and understand what is happening on screen:
bash
# Extract one frame every 5 seconds
./scripts/extract-frames.sh <video_path> [output_dir]
Write a presentation-style narration — not a dry description. Follow this structure:
SectionPurposeContextTell the audience what they're about to see and why it mattersBackgroundExplain the setup / scenarioPrompt / ActionShow what the user actually did (keep it minimal)WalkthroughNarrate each major step, highlighting insights and turning pointsResultLand the payoff — what was found, what was fixed, why it's impressive
Guidelines:
Save the script as <video_name>_voiceover.md alongside the video.
Use the generate script to synthesize each narration segment:
bash
./scripts/generate-tts.sh <script_sections_file> <output_dir> [voice] [rate]
Or generate directly via Python with edge-tts:
en-US-GuyNeural (natural male) or en-US-AvaNeural (natural female)+0% and +10% to fit the video durationbash
./scripts/merge-audio.sh <video_path> <narration_audio> [output_path]
-shortest to match the shorter of video/audioInstall dependencies if not present:
bash
pip3 install edge-tts # Microsoft neural TTS (free, no API key)
brew install ffmpeg # or apt-get install ffmpeg
The skill produces:
<name> (with narration).mov — the video with baked-in voiceover<name>_voiceover.md — the timestamped script for reference or re-recording