← All skills
analyze-footage
57 / 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 AkariLabs/akari-video (GitHub) · media · 214 stars · scanned at commit 12b6313
Analyze one footage file in pull-driven levels L0–L3 and record only observed evidence in analysis.json v0. By default, run L0 metadata and L1 audio (`akari media probe` → `waveform` → `transcribe` only when speech is likely); cloud transcription requires approval. Inspect keyframes, editing events, and hooks at L2, or person tracks at L3, only when requested. Use for new footage, pre-edit analysis of one file, or footage analysis needed before plan-edit.
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 43 places.
Show 17 more
- skills/analyze-footage/bin/person-matte/mask-from-alpha.mjs, line 29
return spawnSync(command, args, { - skills/analyze-footage/bin/person-matte/mask-roundtrip.mjs, line 11
import { spawn, spawnSync } from "node:child_process"; - skills/analyze-footage/bin/person-matte/mask-roundtrip.mjs, line 68
const result = spawnSync(ffprobe, [ - skills/analyze-footage/bin/person-matte/person-cutout.mjs, line 10
import { spawnSync } from "node:child_process"; - skills/analyze-footage/bin/person-matte/person-cutout.mjs, line 272
const result = spawnSync(command, args, { encoding: "utf8", maxBuffer: 16 * 1024 * 1024, ...options }); - skills/analyze-footage/bin/person-matte/person-cutout.mjs, line 358
const result = spawnSync(process.execPath, [validateEditScript, temporaryPath], { - skills/analyze-footage/bin/person-matte/person-matte.mjs, line 25
import { spawn, spawnSync } from "node:child_process"; - skills/analyze-footage/bin/person-matte/person-matte.mjs, line 85
return spawnSync(command, args, { encoding: "utf8" }); - skills/analyze-footage/bin/test/face-expression-availability.test.mjs, line 2
import { spawnSync } from "node:child_process"; - skills/analyze-footage/bin/test/face-expression-availability.test.mjs, line 53
const result = spawnSync(process.execPath, [script, "--check"], { encoding: "utf8", env }); - skills/analyze-footage/bin/test/transcribe-sa-locale.test.mjs, line 2
import { spawnSync } from "node:child_process"; - skills/analyze-footage/bin/test/transcribe-sa-locale.test.mjs, line 22
const check = spawnSync(process.execPath, [script, "--check"], { encoding: "utf8" }); - skills/analyze-footage/bin/test/transcribe-sa-locale.test.mjs, line 39
const result = spawnSync(process.execPath, [script, "--input", input, "--helper-bin", helper, ...extra], { encoding: "utf8" }); - skills/analyze-footage/bin/test/transcribe-sa-locale.test.mjs, line 95
const invoke = (extraEnv = {}) => spawnSync(process.execPath, [script, "--input", input, "--helper-bin", legacy, "--locale", "en-US"], { encoding: "utf8", env: - skills/analyze-footage/bin/test/transcribe-sa-locale.test.mjs, line 151
const result = spawnSync(process.execPath, [script, "--input", input, "--helper-bin", helper, "--locale", "en-US"], { encoding: "utf8", env }); - skills/analyze-footage/bin/transcribe-cloud.mjs, line 6
import { spawnSync } from "node:child_process"; - skills/analyze-footage/bin/transcribe-cloud.mjs, line 189
result = spawnSync("ffmpeg", args, { encoding: "utf8" });
and 23 more places
Sends data to these websites: raw.githubusercontent.com
This is disclosed by the author in the skill's SKILL.md or README. Expected for a media skill.
Found in 6 places.
Show 3 more
Downloads and installs other software
The author does not mention this.
Found in 5 places.
Show 2 more
Changes files outside its own folder
The author does not mention this.
Found in 1 place.
Can call paid AI services billed to you
The author does not mention this. Expected for a media skill.
Found in 1 place.
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/'analyze-footage' ] || [ -L ~/.agents/skills/'analyze-footage' ]; then echo 'A skill folder named analyze-footage already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/AkariLabs/akari-video' "$d" && git -C "$d" checkout --quiet '12b63130cc05dfc1efff973508a33f4fe3a27129' -- 'skills/analyze-footage' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/analyze-footage' ~/.agents/skills/'analyze-footage' && 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/'analyze-footage' ~/.claude/skills/'analyze-footage' (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 AkariLabs/akari-video shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/AkariLabs/akari-video/)
Score history
| Date | Version | Score |
|---|
| 2026-11-07 | 12b6313 | 57 |