Cookbook

Podcast audio cleanup

Extract/normalize audio, optionally mux back to video.

Skills: `inspect` → `audio` → `video-transformation` → `inspect`

Steps

Step 1 — inspect
# 1. Probe
cd skills/inspect
uv run scripts/describe.py --input episode.mp4

# 2. Normalize loudness
cd ../audio
uv run scripts/normalize.py --input episode.mp4
# Note output_path from JSON

# 3. Mux normalized audio back (if video podcast)
cd ../video-transformation
uv run scripts/replace_audio.py \
  --input episode.mp4 \
  --audio .mediaskills/generated/episode_normalized.wav \
  --copy-video
Step 2
# After mux: duration of muxed output should approximate source video duration
cd ../inspect
uv run scripts/describe.py --input .mediaskills/generated/<muxed>.mp4
uv run scripts/compare.py --input-a episode.mp4 --input-b .mediaskills/generated/<muxed>.mp4

Optional steps

• `audio/silence_detect.py` — find dead air for manual cuts
• `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.
esc

Try trim, captions, timecode, or broadcast