Skip to content
Agentmart
Submit a tool

transcribe-podcast

Transcribe a podcast episode and produce two outputs in one pass — (1) the raw API transcript exactly as the provider returned it, and (2) a podcast-formatted…

Skill by danielrosehill

IndexedMIT★ 1
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/danielrosehill-transcribe-podcast

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

Transcribe a podcast episode and produce two outputs in one pass — (1) the raw API transcript exactly as the provider returned it, and (2) a podcast-formatted reading version with filler words removed, section headers added, and speaker labels preserved. Use whenever the user provides a podcast audio file or says "transcribe this podcast".

Use cases: backend

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

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/transcribe-podcast

What's inside

Skill name
transcribe-podcast
Description
Transcribe a podcast episode and produce two outputs in one pass — (1) the raw API transcript exactly as the provider returned it, and (2) a podcast-formatted reading version with filler words removed, section headers added, and speaker labels preserved. Use whenever the user provides a podcast audio file or says "transcribe this podcast".
License
MIT
Instructions
59 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Transcribe Podcast (raw + reading version)

Single skill that yields **both** outputs the user wants every time for a podcast:

1. **Raw transcript** — exactly what the transcription API returned, no editing. Source of truth.
2. **Podcast reading version** — same content, formatted for human reading: filler words removed, false starts cleaned, paragraph breaks at natural topic shifts, section headers (`## Topic`) added, speaker labels preserved (`**Daniel:** ...`).

Both files are written to disk. The reading version is what gets pasted into blog posts, show notes, or summaries; the raw version stays for verification.

## Provider order

Per plugin CLAUDE.md: **Gemini via OpenRouter by default; AssemblyAI only on request.**

1. Default: `transcribe-gemini-raw` (`gemini-transcription` MCP). Gemini labels speakers from context when no timestamps are needed.
2. Use `transcribe-assemblyai` only if the user wants word-level timestamps or diarized speaker labels.

Do not ask the user which provider — just use Gemini unless they specified one or asked for timestamps/diarization.

## Procedure

1. **Transcribe via Gemini** (`transcribe_audio_raw`; ask it to label speakers from context). If the user wants timestamps/diarization, use AssemblyAI instead (`speaker_labels: true`, `punctuate: true`, `format_text: true`).
   - Save raw output to `<source_stem>.raw.md` — speaker-labelled prose, no timestamps in this file (timestamps are kept in the sidecar JSON for downstream skills). One paragraph per speaker turn.
   - AssemblyAI path only: also save `<source_stem>.assemblyai.json` (full API payload) for downstream tools.
2. **Produce the reading version** at `<source_stem>.podcast.md`:
   - Remove filler words: `um`, `uh`, `er`, `ah`, `you know` (filler use), `like` (filler use), `I mean` (filler use), `sort of`, `kind of` (filler use), `right?` (tic).
   - Remove false starts and immediate self-repetitions.
   - **Do not paraphrase, summarize, or reorder.** Preserve the speaker's meaning, vocabulary, and tone. This is a cleaned transcript, not a rewrite.
   - Preserve speaker labels: `**Daniel:**`, `**Guest:**`, etc. If `<source_stem>_speakers.json` exists, use those names; otherwise use the provider's speaker labels (AssemblyAI: `A`/`B`/`C`) mapped to `Speaker A` / `Speaker B` etc., and ask the user to confirm names if it's a 2+ speaker episode.
   - Add `## ` section headers at natural topic transitions. Aim for one header every 3–8 minutes of content. Headers should be short, descriptive, sentence-case (`## Why diarization matters`, not `## Diarization`). Do not invent topics — derive headers from what's actually said.
   - Add a single `# <Episode Title>` at the top if the user supplied one (or it's inferable from the source filename); otherwise skip the H1.
3. **Report** both file paths to the user, plus a one-line word-count and duration summary.

## Output files

| File | Contents |
|------|----------|
| `<stem>.raw.md` | Raw transcript, speaker labels, no editing |
| `<stem>.assemblyai.json` | Full AssemblyAI JSON (timestamps, confidences); AssemblyAI path only |
| `<stem>.podcast.md` | Reading version — fillers removed, headers added |

## When to use

- User provides podcast audio and asks for a transcript.
- User says "transcribe this podcast", "transcribe this episode", "give me a podcast transcript".
- User wants both a verifiable raw transcript and a clean reading version (the common case for show-notes / blog repurposing).

## When NOT to use

- Single-speaker memo, voice note, or dictation → use `transcribe-gemini-cleaned` directly.
- Meeting / interview where the user wants timestamps or diarization → `transcribe-assemblyai`.
- User explicitly wants only one output → use the underlying single-output skill.

## Notes

- If AssemblyAI is used, cost is ~$0.37/hr with speaker labels; flag if the audio is >4 hours.
- The reading version is derived from the raw transcript, not re-transcribed — one API call total.
- If section-header inference is unreliable on a particular episode (e.g. very meandering conversation), produce the cleaned prose with paragraph breaks only and tell the user headers were skipped.

From danielrosehill/Claude-Transcription-Plugin, MIT.

More from danielrosehill/Claude-Transcription-Plugin

Signals

Stars
1
Forks
2
Open issues
0
Last commit (this folder)
Apr 28, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from danielrosehill

Cite this page

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