Video Understand
Build the shared evidence layer once. Keep observations in source time and leave editorial decisions to downstream skills.
This skill is a prerequisite for /video-cut, /video-to-shorts,
/video-add-captions, /video-add-content-cards, and /video-add-graphic-motion.
Run it first so those skills consume the same validated evidence and timeline.
Dependencies
Require ffmpeg/ffprobe, Python, and faster-whisper for transcription. Check them before processing media.
Workflow
Initialize a project from the original source:
python scripts/init_project.py path/to/source.mp4 path/to/my-video-project
This creates input/, review/00-video-understanding/, final/, the minimal
machine-facing work/ tree, an identity timeline, project.json, media facts, and
START-HERE.md. It does not create folders for unselected edit operations.
Probe again only when the source needs an explicit metadata refresh:
python scripts/probe.py input/original-video.mp4 work/understand/media.json
Extract 16 kHz mono audio and transcribe it:
ffmpeg -y -i input/original-video.mp4 -ac 1 -ar 16000 work/cache/audio16k.wav
python scripts/transcribe.py work/cache/audio16k.wav work/understand/transcript medium `
--lang auto --cache-dir work/cache/faster-whisper
Use --lang auto for unknown or mixed-language speech. Never infer the spoken language
from the language of the user's prompt. Pass a fixed language such as --lang zh only
when the audio itself or explicit user metadata establishes it. Keep model downloads in
the project-local work/cache/faster-whisper/ cache. Faster-whisper may emit an
occasional point-timed word with equal start/end values; the shared timeline mapper
preserves it as a 1 ms interval so captions and derivatives do not silently lose text.
Generate objective metrics and semantic candidates:
python scripts/analyze.py work/understand/transcript.json work/understand/analysis.json
Read the source, transcript, and analysis. Author work/understand/understanding.json with factual summaries, source-time ranges, confidence, and transcript evidence. Do not prescribe cuts, cards, or looks.
Validate before downstream use:
python scripts/validate.py understanding work/understand/understanding.json work/understand/transcript.json
Create only these useful review artifacts under review/00-video-understanding/:
video-summary.md, transcript.srt, and contact-sheet.jpg. Verify metadata,
timestamps, evidence references, and visible frames. Do not substitute PNG or ad hoc
filenames for the protocol names.
Mark the understanding operation check.status as pass only after the review artifacts
and semantic evidence validate. Operation lifecycle status and check result are separate;
never write verified into check.status.
Contracts
- Read project-schema.md when creating or validating
project.json.
- Read timeline-schema.md when mapping source and program time.
- Read understanding-schema.md before authoring semantic understanding.
- Use understanding.example.json as a compact example.
All durable machine files live in work/understand/. Treat work/cache/ as disposable.
1---2name: video-understand3description: Use when a video project needs reusable media metadata, word-level transcription, objective speech analysis, or evidence-backed semantic understanding before optional editing skills run.4---56# Video Understand78Build the shared evidence layer once. Keep observations in source time and leave editorial decisions to downstream skills.910This skill is a prerequisite for `/video-cut`, `/video-to-shorts`,11`/video-add-captions`, `/video-add-content-cards`, and `/video-add-graphic-motion`.12Run it first so those skills consume the same validated evidence and timeline.1314## Dependencies1516Require `ffmpeg`/`ffprobe`, Python, and `faster-whisper` for transcription. Check them before processing media.1718## Workflow19201. Initialize a project from the original source:2122 ```powershell23 python scripts/init_project.py path/to/source.mp4 path/to/my-video-project24 ```2526 This creates `input/`, `review/00-video-understanding/`, `final/`, the minimal27 machine-facing `work/` tree, an identity timeline, `project.json`, media facts, and28 `START-HERE.md`. It does not create folders for unselected edit operations.29302. Probe again only when the source needs an explicit metadata refresh:3132 ```powershell33 python scripts/probe.py input/original-video.mp4 work/understand/media.json34 ```35363. Extract 16 kHz mono audio and transcribe it:3738 ```powershell39 ffmpeg -y -i input/original-video.mp4 -ac 1 -ar 16000 work/cache/audio16k.wav40 python scripts/transcribe.py work/cache/audio16k.wav work/understand/transcript medium `41 --lang auto --cache-dir work/cache/faster-whisper42 ```4344 Use `--lang auto` for unknown or mixed-language speech. Never infer the spoken language45 from the language of the user's prompt. Pass a fixed language such as `--lang zh` only46 when the audio itself or explicit user metadata establishes it. Keep model downloads in47 the project-local `work/cache/faster-whisper/` cache. Faster-whisper may emit an48 occasional point-timed word with equal start/end values; the shared timeline mapper49 preserves it as a 1 ms interval so captions and derivatives do not silently lose text.50514. Generate objective metrics and semantic candidates:5253 ```powershell54 python scripts/analyze.py work/understand/transcript.json work/understand/analysis.json55 ```56575. Read the source, transcript, and analysis. Author `work/understand/understanding.json` with factual summaries, source-time ranges, confidence, and transcript evidence. Do not prescribe cuts, cards, or looks.58596. Validate before downstream use:6061 ```powershell62 python scripts/validate.py understanding work/understand/understanding.json work/understand/transcript.json63 ```64657. Create only these useful review artifacts under `review/00-video-understanding/`:66 `video-summary.md`, `transcript.srt`, and `contact-sheet.jpg`. Verify metadata,67 timestamps, evidence references, and visible frames. Do not substitute PNG or ad hoc68 filenames for the protocol names.69708. Mark the understanding operation `check.status` as `pass` only after the review artifacts71 and semantic evidence validate. Operation lifecycle `status` and check result are separate;72 never write `verified` into `check.status`.7374## Contracts7576- Read [project-schema.md](reference/project-schema.md) when creating or validating `project.json`.77- Read [timeline-schema.md](reference/timeline-schema.md) when mapping source and program time.78- Read [understanding-schema.md](reference/understanding-schema.md) before authoring semantic understanding.79- Use [understanding.example.json](examples/understanding.example.json) as a compact example.8081All durable machine files live in `work/understand/`. Treat `work/cache/` as disposable.