Overview
Requires ffmpeg and 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.
Normalize then put audio back on video
uv run scripts/normalize.py --input clip.mp4Extract clean audio only
uv run scripts/extract.py --input clip.mp4 --output dialogue.wavConvert for 48 kHz AAC for delivery
uv run scripts/resample.py --input master.wav --sample-rate 48000 --output master_48k.wav
uv run scripts/convert.py --input master_48k.wav --format aac --output master.m4aTrim a segment and join clips
uv run scripts/trim.py --input intro.wav --start 0 --end 30 --output intro_trim.wav
uv run scripts/trim.py --input outro.wav --start 5 --end 60 --output outro_trim.wav
uv run scripts/concat.py --paths intro_trim.wav outro_trim.wav --output final.wavFind silence for auto-editing
uv run scripts/silence_detect.py --input podcast.wavOperations
Each script returns structured JSON — see the script contract.
| Op ID | Script | Common flags |
|---|---|---|
audio.concat | concat.py | --output |
audio.convert | convert.py | --input |
audio.extract | extract.py | --input, --output |
audio.fade | fade.py | --input |
audio.normalize | normalize.py | --input |
audio.probe | probe.py | --input |
audio.resample | resample.py | --input |
audio.silence_detect | silence_detect.py | --input |
audio.trim | trim.py | --input |
Do not use for
- Probing media metadata (use `inspect`)
- Video transforms (use `video-transformation`)
- Speech-to-text (use `speech-captions`)