Skip to content
Agentmart
Submit a tool

podcast-editor

Polish podcast or interview audio/video by tightening silence, removing filler, applying speed only where safe, balancing speakers, and verifying loudness.

Skill by explicit09

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/explicit09-podcast-editor

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Polish podcast or interview audio/video by tightening silence, removing filler, applying speed only where safe, balancing speakers, and verifying loudness.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/podcast-editor

What's inside

Skill name
podcast-editor
Description
Polish podcast or interview audio/video by tightening silence, removing filler, applying speed only where safe, balancing speakers, and verifying loudness.
License
Apache-2.0
Instructions
132 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (3)

  • SKILL.md
  • audio_mix_plan.py · scripts/
  • audio_polish_plan.py · scripts/

SKILL.md (first lines)

# Podcast editor

Use this for polishing an existing podcast/interview cut. If raw
pre-roll is still present, first use the deterministic transcript
trim/setup planner below to find the publishable start; do not manually
work through pre-roll with split/delete loops.

## Workflow

### 1. Map audio and transcript

Read the episode shape and transcript/audio sidecars:

```
view_episode
read_index(channel="audio-energy", asset_id=...)
read_index(channel="whisper", asset_id=...)
```

Run:

```bash
python3 <skill-root>/scripts/audio_polish_plan.py \
  --audio-energy index/audio-energy/raw/<asset>.json \
  --transcript index/whisper/raw/<asset>.json \
  --content-type interview
```

For publish-readiness audio polish, also run:

```bash
python3 <skill-root>/scripts/audio_mix_plan.py \
  --audio-energy index/audio-energy/raw/<asset>.json \
  --transcript index/whisper/raw/<asset>.json \
  --target-lufs -16
```

### 2. Build bounded cleanup EDLs

Prefer the CLI planners that emit one kept-range EDL, then apply that EDL
once with `apply_edl`:

```bash
montage plan-transcript-setup-edl <project> [--asset <asset-or-clip>]
montage plan-dead-air-edl <project> --min-duration-s 0.8 --silence-threshold-db -40 --keep-padding-s 0.3 [--asset <asset-or-clip>]
montage plan-false-start-edl <project> [--asset <asset-or-clip>]
montage plan-transcript-cleanup-edl <project> --min-filler-ratio 0.35 --min-filler-tokens 2 [--asset <asset-or-clip>]
```

Use `cargo run -p montage-cli -- ...` instead of `montage ...` when
running from a development checkout that does not have the CLI on PATH.

Apply only one planner output at a time, then call `view_timeline` and
`vedit_diff`. Stop and report the current diff if a planner cannot
produce an EDL or if the edit would require more than one manual
split/delete batch.

Keep pauses that carry meaning: after disagreement, before a reveal,
between speakers, or after a punchline. Do not delete silence fragments
by repeatedly `Split Clip` + `Delete Clip`; that is slow, hard to audit,
and can leave the session log behind the actual timeline.

### 2b. Remove in-episode production chatter

Do not assume the interview is publishable just because the real episode
has started. Podcast recordings often contain mid-interview production
chatter: the host/guest stops to plan the next question, says "you can
just say...", discusses how to introduce themselves, asks whether to
restart, talks about setup, or otherwise directs the recording instead of
answering the interview. Treat this as removable editorial content even
when it appears inside the main interview body.

Before dead-air-only cleanup, inspect semantic signals around candidate
ranges:

```bash
read_index(channel="editorial-moments", asset_id=...)
read_index(channel="topic", asset_id=...)
```

Cut low-score `tangent`, `dead_air`, `false_start`, and production/meta
moments when the transcript is about recording structure rather than the
episode topic. Preserve it only if it sets up a later high-value answer
or the user explicitly wants behind-the-scenes material. For every such
removal, cut linked audio and video together and verify the neighboring
question/answer still makes sense.

### 3. Speed only slow substantive sections

If the script recommends speed changes, apply `Set Speed` only to
sections below 130 WPM and never above 1.15x. Do not speed up already
fast speakers or emotional peaks.

### 4. Loudness, cleanup, and final verification

Apply `Set Volume` only for broad level correction recommended by the
mix plan. Use `Set Clip Audio FX` or `Set Track Audio FX` for graph-native
high-pass/low-pass, hum notch, EQ, noise gate, compression, limiter,
de-ess approximation, and loudnorm cleanup. Apply `Set Loudness Target`
for the delivery target before rendering when the user wants publishable
output. Per-speaker mix imbalance still needs isolated tracks or careful
clip-level/track-level gain decisions.

Do not treat the agent's prior summary as proof that the timeline is good.
Before saying podcast polish, B-roll, or a preview-related fix is done, inspect
the actual timeline state: run `view_timeline`, `vedit_diff`, and the relevant
podcast polish/QC tool. For visual/B-roll work, also run
`podcast_visual_polish` and reconcile each placed support visual against its
transcript anchor. Explicitly list skipped, failed, or weak candidates instead
of collapsing them into "done."

Before final render/export, ask the user to confirm that the current
timeline is ready to render unless they already gave explicit render
approval in the same turn. Render and verify. If `ffprobe`/FFmpeg
checks fail, fix the timeline or report the exact blocker. After the
render completes, ask the user to watch/review the output and say
whether it looks good or needs changes. Do not claim final delivery
without a render path plus that review handoff, or a clear reason
verification could not run.

From explicit09/montage, Apache-2.0.

More from explicit09/montage

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 7, 2026 (4 months ago)
Last release
Jun 10, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from explicit09

Cite this page

podcast-editor skill. Agent Mart. https://agentmart.dev/skills/explicit09-podcast-editor (last updated 2026-10-24)