Cookbook
Podcast audio cleanup
Extract/normalize audio, optionally mux back to video.
Skills: `inspect` → `audio` → `video-transformation` → `inspect`
Steps
Stay in the workspace. Replace each <skill_directory> with the absolute path of that skill (where its SKILL.md lives). Do not cd into the skill folder.
Step 1 — Probe
# 1. Probe
uv run <inspect_skill_directory>/scripts/describe.py --input episode.mp4
# 2. Normalize loudness
uv run <audio_skill_directory>/scripts/normalize.py --input episode.mp4
# Note output_path from JSON
# 3. Mux normalized audio back (if video podcast)
uv run <video-transformation_skill_directory>/scripts/replace_audio.py \
--input episode.mp4 \
--audio .mediaskills/generated/episode_normalized.wav \
--copy-videoStep 2 — inspect
# After mux: duration of muxed output should approximate source video duration
uv run <inspect_skill_directory>/scripts/describe.py --input .mediaskills/generated/<muxed>.mp4
uv run <inspect_skill_directory>/scripts/compare.py --input-a episode.mp4 --input-b .mediaskills/generated/<muxed>.mp4Optional steps
• `audio/silence_detect.py` — find dead air for manual cuts
• `audio/trim.py` + `concat.py` — remove segments
• `audio/trim.py` + `concat.py` — remove segments
Agent notes
- `normalize.py` outputs WAV; do not use `transcode.py` for external audio.
- `replace_audio.py` uses `-shortest` — pad audio if video must run full length.