Overview
Requires ffprobe on PATH. Scripts are Python 3.11+, run via `uv run` (no separate install step).
Recipes
Copy-paste command sequences agents can run via uv run.
Quick metadata check
uv run scripts/describe.py --input /path/to/clip.mp4Example JSON output
{"ok": true, "op": "inspect.describe", "data": {"format": "mov,mp4,m4a,3gp,3g2,mj2", "duration": "12.500000", "size": "1048576", "video": {"codec": "h264", "width": 1920, "height": 1080}, "audio_codecs": ["aac"]}, "output_paths": []}Full structured probe (for programmatic use)
uv run scripts/probe.py --input /path/to/clip.mp4Compare before/after a transcode
uv run scripts/compare.py --input-a original.mp4 --input-b transcoded.mp4Batch inventory a folder
uv run scripts/batch_probe.py --paths clip1.mp4 clip2.mp4 clip3.wavAnswer a specific question (agent workflow)
uv run scripts/ask.py --input clip.mp4 --question "Does this file have an audio track?"Operations
Each script returns structured JSON — see the script contract.
| Op ID | Script | Common flags |
|---|---|---|
inspect.ask | ask.py | — |
inspect.batch_probe | batch_probe.py | — |
inspect.compare | compare.py | --input |
inspect.describe | describe.py | — |
inspect.duration | duration.py | — |
inspect.probe | probe.py | --input |
inspect.resolution | resolution.py | — |
Do not use for
- Modifying or transcoding media (use `audio`, `image`, or `video-transformation`)
- Downloading from URLs (use `download`)
- Generating captions from speech (use `speech-captions`)