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-video
Step 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>.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