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
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.
About
Use cases: backend
Reviews
Write a reviewNo 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
- 0.462score
transcribe-gemini-cleaned
danielrosehill
Transcribe audio via Gemini with filler words and pause-words removed at transcription time.
SkillAFreshness: A★ 1Claude Code +9 - 0.462score
transcribe-gemini-raw
danielrosehill
Transcribe an audio file to a raw verbatim transcript using the gemini-transcription MCP server.
SkillAFreshness: A★ 1Claude Code +9 - 0.459score
export-transcript
danielrosehill
Export a transcript (or any pipeline output) by emailing it, uploading to Google Drive, or copying to clipboard.
SkillAFreshness: A★ 1Claude Code +9 - 0.391score
iterative-refine
danielrosehill
Stepwise transcript refinement that never overwrites prior stages.
SkillCFreshness: C★ 1Claude Code +9 - 0.391score
combine-then-transcribe
danielrosehill
Concatenate multiple audio recordings into one file and send as a single transcription job.
SkillCFreshness: C★ 1Claude Code +9 - 0.391score
denoise
danielrosehill
Remove background noise from an audio file.
SkillCFreshness: C★ 1Claude Code +9 - 0.391score
extract-context
danielrosehill
Mine a transcript for durable personal context — facts about the speaker (location, role, projects, preferences, relationships, ongoing work) — and write them…
SkillCFreshness: C★ 1Claude Code +9 - 0.391score
messy-audio-fix
danielrosehill
Diagnose-and-treat workflow for very messy recordings where the standard preprocessor isn't enough.
SkillCFreshness: C★ 1Claude Code +9 - 0.391score
split-transcript
danielrosehill
Segment a mixed-intent transcript into separate files by category — prompts, context, action items, background, decisions.
SkillCFreshness: C★ 1Claude Code +9 - 0.388score
preprocess-for-transcription
danielrosehill
Prepare audio for transcription — format normalise (mono/16kHz/opus), loudness normalise (EBU R128), and collapse long silences (silero-vad).
SkillCFreshness: C★ 1Claude Code +9 - 0.340score
normalize-format
danielrosehill
Convert audio to a transcription-friendly format — stereo to mono, resample to 16kHz, compress WAV to opus or mp3, reduce bitrate.
SkillDFreshness: D★ 1Claude Code +9 - 0.340score
extract-speaker-samples
danielrosehill
Cluster unique voices in an audio recording and extract a short sample of each to a file, then prompt the user to label them.
SkillDFreshness: D★ 1Claude Code +9
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
- Source
- GitHubgithub-graphql
More from danielrosehill
- 0.470score
plugin-data-storage
danielrosehill
Canonical reference for where Claude Code plugins should persist user data.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
save-plan
danielrosehill
Save a Claude Code plan (from ExitPlanMode, design discussion, or multi-step task) to persistent storage.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
onboard
danielrosehill
First-run onboarding for the adb-ops plugin.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
context-gate
danielrosehill
One-shot context-checkpoint workflow — when the current session is getting cluttered, write a structured handover plan capturing what's done and what's…
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
context-workflow-reference
danielrosehill
Reference and worked example for the CONTEXT.md / CLAUDE.md two-file workflow.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
scaffold-planning
danielrosehill
Create a lightweight `planning/` folder in the current repo with leftover-tasks.md, blockers.md, session-logs/, and handovers/.
SkillAFreshness: A★ 2Claude Code +9
Cite this page
transcribe-podcast skill. Agent Mart. https://agentmart.dev/skills/danielrosehill-transcribe-podcast (last updated 2026-10-24)