Skip to main content
ClaudeWave
Slash Command2.4k repo starsupdated today

podcast

The `/podcast` command extracts metadata, transcript, and summary from podcast episodes by accepting Apple Podcasts or RSS feed URLs. It retrieves transcripts from RSS feeds, Whisper API, or show notes, then generates AI summaries including key points, notable quotes, themes, and guests. Use this to quickly capture and index podcast content into your Obsidian vault as structured, AI-enhanced notes without manual transcription.

Install in Claude Code
Copy
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/eugeniughelbur/obsidian-second-brain/HEAD/commands/podcast.md -o ~/.claude/commands/podcast.md
Then start a new Claude Code session; the slash command loads automatically.

podcast.md

Use the obsidian-second-brain skill. Execute `/podcast [url]`:

1. Resolve the podcast URL from the user's argument. Accept any of:
   - Apple Podcasts episode URL (`https://podcasts.apple.com/.../id<show>?i=<episode>`)
   - Direct RSS feed URL (uses the latest episode unless `?episode=<guid>` selector is appended)
   - Direct RSS feed URL with `?episode=<guid-fragment-or-link-fragment>` selector

   If no input given, ask: "Which podcast episode? Paste the Apple Podcasts link or RSS feed URL." Spotify URLs are not supported (DRM blocks audio + transcript access). Surface this clearly if pasted.

2. Run the Python command from the repo root (`~/Projects/personal/obsidian-second-brain/`):
   ```bash
   uv run -m scripts.research.podcast_extract "<url>"
   ```

3. The script:
   - Resolves Apple Podcasts URLs to RSS via the free iTunes Lookup API (no key needed).
   - Parses the RSS feed, extracts episode metadata (title, show, host, published, duration, audio URL, show notes).
   - Tries to obtain a transcript in this order:
     1. **`<podcast:transcript>` tag** in the RSS feed (free, fast, high fidelity).
     2. **Whisper API**, only if `OPENAI_API_KEY` is set. Downloads audio (<=25 MB OpenAI per-file limit), transcribes via `whisper-1`. Approximate cost: $0.006/min.
     3. **Show-notes-only fallback**. If no transcript path works, summarizes from RSS show notes alone. Quality drops; Notable Quotes will be empty.
   - Sends transcript-or-shownotes to Grok for AI-first summarization.
   - Returns: TL;DR, Key Points, Notable Quotes, Themes & Topics, Guests & People Mentioned, Worth Following Up On.

4. Show the script output verbatim to the user.

5. **Default save behavior: saves automatically.** AI-first note written to `Research/Podcasts/YYYY-MM-DD — <episode-title-slug>.md` (em-dash separator, matches the existing `/youtube` and `/research` filename pattern). Frontmatter includes `show`, `host`, `episode-title`, `episode-url`, `feed-url`, `guid`, `published`, `duration`, `transcript-source` (one of `rss-transcript-tag` / `whisper-api` / `show-notes`), and tags.

6. Plain English triggers: "summarize this podcast", "what's in this episode", "transcribe this podcast", or just pasting an Apple Podcasts URL with a question about content.

7. If the podcast publishes neither a transcript tag nor usable show notes AND there's no `OPENAI_API_KEY`, the script will fail with a clear message. Surface it. Suggest the user either picks a podcast that publishes transcripts, or sets `OPENAI_API_KEY` for Whisper transcription.

8. If the user asks to research someone or something mentioned in the "Worth Following Up On" or "Guests & People Mentioned" section, route that to `/research [topic]` (or `/obsidian-person` if it's a vault-worthy contact).

---

**AI-first rule:** Every note created or updated by this command MUST follow `references/ai-first-rules.md`. That means: `## For future Claude` preamble, rich frontmatter (`type`, `date`, `tags`, `ai-first: true`, plus type-specific fields), recency markers per external claim, mandatory `[[wikilinks]]` for every person/project/concept referenced, sources preserved verbatim with URLs inline, and confidence levels where applicable. The vault is for future-Claude retrieval, not human reading.

**Anti-fabrication:** Search exhaustively before claiming any note, person, or file is absent - false absence is the most common failure mode - and never invent facts, entities, or dates (mark unknowns as `TBD`). See the anti-fabrication and search-completeness hard rules in `references/ai-first-rules.md`.