← All skills
scenario-kinetic-film
75 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a media skill usually calls an AI service over the internet.
By scenario-labs/skills (GitHub) · media · 3,675 stars · scanned at commit b96506d
Use when making a launch film, game teaser, trailer, product promo or brand film from a brief in kinetic typography: huge type on every beat, whip pans, 3D letters, key art cut in, beat sync to generated music and sound effects, a 1080p or 4K render with motion blur. Not for a song the user already has (scenario-kinetic-music-video).
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 27 places.
Show 17 more
- skills/scenario-kinetic-film/scripts/browser.mjs, line 19
execSync("npm root -g", { stdio: ["ignore", "pipe", "ignore"] }) - skills/scenario-kinetic-film/scripts/dyn.py, line 33
p = subprocess.Popen(cmd, stdout=subprocess.PIPE) - skills/scenario-kinetic-film/scripts/filmserver.py, line 56
result = subprocess.run( - skills/scenario-kinetic-film/scripts/finish.py, line 70
accels = subprocess.run([ffmpeg, "-hide_banner", "-hwaccels"], capture_output=True, text=True).stdout.split() - skills/scenario-kinetic-film/scripts/finish.py, line 74
errors = [line for line in subprocess.run(cmd, capture_output=True, text=True).stderr.splitlines() if line.strip()] - skills/scenario-kinetic-film/scripts/finish.py, line 87
return subprocess.run(cmd, capture_output=True, text=True).stdout.strip() - skills/scenario-kinetic-film/scripts/finish.py, line 92
return int(subprocess.run(cmd, capture_output=True, text=True).stdout.strip() or 0) - skills/scenario-kinetic-film/scripts/finish.py, line 96
err = subprocess.run(["ffmpeg", "-i", path, "-vn", "-af", "ebur128", "-f", "null", "-"], capture_output=True, text=True).stderr - skills/scenario-kinetic-film/scripts/finish.py, line 114
subprocess.run([*run, "-c:v", "copy", "-movflags", "+faststart", "-metadata", f"title={title}", master], check=True) - skills/scenario-kinetic-film/scripts/finish.py, line 118
subprocess.run([*run, "-vf", "scale=1920:1080:flags=lanczos", *x264, "-movflags", "+faststart", check], check=True) - skills/scenario-kinetic-film/scripts/finish.py, line 123
subprocess.run([*run, "-vf", pad, *x264, "-movflags", "+faststart", p], check=True) - skills/scenario-kinetic-film/scripts/holds.py, line 24
p = subprocess.Popen(cmd, stdout=subprocess.PIPE) - skills/scenario-kinetic-film/scripts/mix.py, line 47
raw = subprocess.run(["ffmpeg", "-v", "error", *cut, "-i", path, "-ac", "2", "-ar", str(SR), "-f", "f32le", "-"], capture_output=True).stdout - skills/scenario-kinetic-film/scripts/mix.py, line 210
r = subprocess.run(["ffmpeg", "-v", "info", "-i", src, "-af", f"{target}:print_format=json", "-f", "null", "-"], capture_output=True, text=True).stderr - skills/scenario-kinetic-film/scripts/mix.py, line 214
subprocess.run(["ffmpeg", "-v", "error", "-y", "-i", src, "-af", af, "-ar", str(SR), "-t", f"{dur:.4f}", out], check=True) - skills/scenario-kinetic-film/scripts/post.py, line 88
node = subprocess.Popen(["node", os.path.join(HERE, "render.mjs"), str(dsf), str(f0), str(f1)], stdout=subprocess.PIPE, bufsize=1 << 24) - skills/scenario-kinetic-film/scripts/post.py, line 90
ff = subprocess.Popen(
and 7 more places
Connects to the internet
The author does not mention this. Expected for a media skill.
Found in 4 places.
Show 1 more
Downloads and installs other software
The author does not mention this.
Found in 5 places.
Show 2 more
Safer alternatives
Low-risk skills in the same category (media) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'scenario-kinetic-film' ] || [ -L ~/.agents/skills/'scenario-kinetic-film' ]; then echo 'A skill folder named scenario-kinetic-film already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/scenario-labs/skills' "$d" && git -C "$d" checkout --quiet 'b96506d77c8595a4fe9c66eddb0bf9b5953a1d45' -- 'skills/scenario-kinetic-film' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/scenario-kinetic-film' ~/.agents/skills/'scenario-kinetic-film' && 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/'scenario-kinetic-film' ~/.claude/skills/'scenario-kinetic-film' (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 scenario-labs/skills shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/scenario-labs/skills/)
Score history
| Date | Version | Score |
|---|
| 2026-11-11 | b96506d | 75 |