← All skills
narrated-video
80 / 100 · Low risk
Fine to try.
By every-app/video-skills (GitHub) · media · 34 stars · scanned at commit 01afbd2
Make a narrated product video (a launch video, product demo, or tutorial) from real screenshots of the product and the person's own webcam narration. Captures the product, builds a storyboard to record against, edits the recorded take (restarts, dead air, optionally fillers), times every scene, click, and keystroke to the spoken words, then renders and verifies a 1080p mp4 with a round webcam bubble. Use when someone wants a demo, walkthrough, tutorial, or launch video they will narrate themsel…
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
The author does not mention this.
Found in 18 places.
Show 15 more
- skills/narrated-video/SKILL.md, line 121
uv run $SK/render.py comp render - skills/narrated-video/scripts/build.py, line 60
dec = subprocess.Popen(['ffmpeg', '-v', 'error', '-i', os.path.join(d, 'cam.mp4'), '-f', 'rawvideo', '-pix_fmt', 'yuv420p', '-'], stdout=subprocess.PIPE) - skills/narrated-video/scripts/build.py, line 62
enc = subprocess.Popen(['ffmpeg', '-y', '-v', 'error', '-f', 'rawvideo', '-pix_fmt', 'yuv420p', '-s', f'{SIZE}x{SIZE}', '-r', str(FPS), '-i', '-', - skills/narrated-video/scripts/build.py, line 63
'-c:v', 'libx264', '-crf', '15', '-preset', 'medium', '-pix_fmt', 'yuv420p', '-r', str(FPS), cam], stdin=subprocess.PIPE) - skills/narrated-video/scripts/build.py, line 83
got = int(subprocess.run(['ffprobe', '-v', 'error', '-count_frames', '-select_streams', 'v:0', '-show_entries', 'stream=nb_read_frames', '-of', 'csv=p=0', cam], - skills/narrated-video/scripts/check.py, line 22
b = subprocess.run(['ffmpeg', '-v', 'error', '-i', src, '-vf', vf, '-f', 'rawvideo', '-pix_fmt', fmt, '-'], capture_output=True, check=True).stdout - skills/narrated-video/scripts/check.py, line 35
fa = np.frombuffer(subprocess.run(['ffmpeg', '-v', 'error', '-i', V, '-ac', '1', '-ar', '48000', '-f', 's16le', '-'], capture_output=True, check=True).stdout, n - skills/narrated-video/scripts/check.py, line 64
lu = subprocess.run(['ffmpeg', '-v', 'info', '-i', V, '-af', 'ebur128=peak=true', '-f', 'null', '-'], capture_output=True, text=True).stderr - skills/narrated-video/scripts/common.py, line 26
subprocess.run(['ffmpeg', '-y', '-v', 'error', *map(str, args)], check=True) - skills/narrated-video/scripts/common.py, line 31
out = subprocess.run(['ffprobe', '-v', 'error', '-show_streams', '-show_format', '-of', 'json', str(path)], capture_output=True, text=True, check=True) - skills/narrated-video/scripts/common.py, line 82
pcm = subprocess.run(['ffmpeg', '-v', 'error', '-i', str(path), '-ac', '1', '-ar', '16000', '-f', 'f32le', '-'], capture_output=True, check=True).stdout - skills/narrated-video/scripts/jump.py, line 18
raw = subprocess.run(['ffmpeg', '-v', 'error', '-i', os.path.join(d, 'cam.mp4'), '-vf', f'format=gray,scale={N}:{N}', '-f', 'rawvideo', '-'], capture_output=Tru - skills/narrated-video/scripts/master.py, line 16
log = subprocess.run(['ffmpeg', '-v', 'info', '-i', IN, '-af', f'{PRE},loudnorm=I=-16:TP=-1.5:LRA=9:print_format=json', '-f', 'null', '-'], capture_output=True, - skills/narrated-video/scripts/master.py, line 23
r = subprocess.run(['ffmpeg', '-v', 'info', '-i', OUT, '-af', 'ebur128=peak=true', '-f', 'null', '-'], capture_output=True, text=True).stderr - skills/narrated-video/scripts/render.py, line 23
sys.exit(subprocess.run(HF + args, cwd=P).returncode)
Downloads and installs other software
The author does not mention this.
Found in 1 place.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'narrated-video' ] || [ -L ~/.agents/skills/'narrated-video' ]; then echo 'A skill folder named narrated-video already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/every-app/video-skills' "$d" && git -C "$d" checkout --quiet '01afbd2222da1eceee362b57611dd330d7d9dc82' -- 'skills/narrated-video' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/narrated-video' ~/.agents/skills/'narrated-video' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'narrated-video' ~/.claude/skills/'narrated-video' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for every-app/video-skills shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/every-app/video-skills/)
Score history
| Date | Version | Score |
|---|
| 2026-11-07 | 01afbd2 | 80 |