Podcast Episode Analysis
Analyze podcast episodes to generate structured reports with summaries, guest insights, key quotes, and actionable takeaways. Supports transcript files, audio URLs (YouTube, podcast platforms), and audio files.
When to Use
Activate this skill when the user:
- Mentions "podcast", "episode", "audio", "interview"
- Provides a transcript file path (.txt, .srt, .md)
- Provides an audio file path (.mp3, .m4a, .wav)
- Provides a podcast URL (YouTube, Apple Podcasts, Spotify, etc.)
- Asks to summarize a podcast they listened to
- Wants to extract insights from an interview
- Mentions a specific podcast show or episode
Supported Inputs
- Transcript file:
.txt, .srt, .md file with episode transcript
- Audio URL: Direct audio link or podcast platform URL (will be transcribed)
- Audio file:
.mp3, .m4a, .wav file (will be transcribed)
Instructions
Determine input type:
- If file path with text extension (.txt, .srt, .md): Read transcript directly
- If audio file path (.mp3, .m4a, .wav, etc.): Transcribe with Whisper
- If URL provided: Download and transcribe audio with Whisper
- Ask user for input if not provided
For audio transcription (URLs or audio files):
- Use yt-dlp to download audio (supports many podcast platforms)
- Transcribe using OpenAI Whisper API (requires OPENAI_API_KEY in .env)
- Fallback to local Whisper if available
- Note: Transcription may take a few minutes for long episodes
For transcript files:
- Verify file exists and is readable
- Read the transcript content
- Parse SRT format if applicable
If content retrieval fails:
- Inform user about the issue
- For audio: Check OPENAI_API_KEY is set
- For files: Suggest checking file path
- Stop here
Read the analysis prompt from prompts/podcast.md
Extract episode metadata:
- Podcast name
- Episode title
- Host(s) and guest(s)
- Duration if mentioned
Generate analysis following the prompt structure exactly
Create output directory reports/podcasts/ if needed
Save the report to reports/podcasts/YYYY-MM-DD_sanitized-title.md
Update the activity log at logs/YYYY-MM-DD.md:
- Add entry under "## Podcasts Listened" section
- Format:
- [Title](../reports/podcasts/filename.md) - HH:MM
Confirm to user what was saved
Report Format
# [Episode Title]
**Podcast**: [Show Name]
**Host(s)**: [Names]
**Guest(s)**: [Names if any]
**Source**: [file path or URL]
**Date**: YYYY-MM-DD
**Type**: Podcast Episode
---
[Analysis content following prompts/podcast.md structure]
---
## My Notes
[Empty space for user notes]
Error Handling
- If file doesn't exist: Ask for correct path
- If transcript too short: Note but analyze
- If no speaker identification: Best effort analysis
- If prompts/podcast.md missing: Use prompts/default.md
- If audio download fails: Check yt-dlp is installed (
pip install yt-dlp)
- If transcription fails: Check OPENAI_API_KEY is configured in .env
- If audio file too large: OpenAI API limit is 25MB, suggest splitting
Requirements for Audio
- yt-dlp for downloading audio (
pip install yt-dlp)
- OpenAI API key for transcription (set OPENAI_API_KEY in web/backend/.env)
- Alternatively: Local Whisper installation (
pip install openai-whisper)
Related
- Slash command:
/podcast <filepath-or-url>
- Prompt file:
prompts/podcast.md
- Output:
reports/podcasts/
- Transcription service:
web/backend/services/transcription.py
1---2name: podcast-analysis3description: Analyze podcast episodes from transcripts, audio URLs, or audio files. Use when the user mentions podcast, episode, audio transcript, interview, or provides a podcast file/URL.4---5
6# Podcast Episode Analysis
7
8Analyze podcast episodes to generate structured reports with summaries, guest insights, key quotes, and actionable takeaways. Supports transcript files, audio URLs (YouTube, podcast platforms), and audio files.
9
10## When to Use
11
12Activate this skill when the user:
13- Mentions "podcast", "episode", "audio", "interview"
14- Provides a transcript file path (.txt, .srt, .md)
15- Provides an audio file path (.mp3, .m4a, .wav)
16- Provides a podcast URL (YouTube, Apple Podcasts, Spotify, etc.)
17- Asks to summarize a podcast they listened to
18- Wants to extract insights from an interview
19- Mentions a specific podcast show or episode
20
21## Supported Inputs
22
23- **Transcript file**: `.txt`, `.srt`, `.md` file with episode transcript
24- **Audio URL**: Direct audio link or podcast platform URL (will be transcribed)
25- **Audio file**: `.mp3`, `.m4a`, `.wav` file (will be transcribed)
26
27## Instructions
28
291. **Determine input type**:
30 - If file path with text extension (.txt, .srt, .md): Read transcript directly
31 - If audio file path (.mp3, .m4a, .wav, etc.): Transcribe with Whisper
32 - If URL provided: Download and transcribe audio with Whisper
33 - Ask user for input if not provided
34
352. **For audio transcription** (URLs or audio files):
36 - Use yt-dlp to download audio (supports many podcast platforms)
37 - Transcribe using OpenAI Whisper API (requires OPENAI_API_KEY in .env)
38 - Fallback to local Whisper if available
39 - Note: Transcription may take a few minutes for long episodes
40
413. **For transcript files**:
42 - Verify file exists and is readable
43 - Read the transcript content
44 - Parse SRT format if applicable
45
464. If content retrieval fails:
47 - Inform user about the issue
48 - For audio: Check OPENAI_API_KEY is set
49 - For files: Suggest checking file path
50 - Stop here
51
525. **Read the analysis prompt** from `prompts/podcast.md`
536. **Extract episode metadata**:
54 - Podcast name
55 - Episode title
56 - Host(s) and guest(s)
57 - Duration if mentioned
587. **Generate analysis** following the prompt structure exactly
598. **Create output directory** `reports/podcasts/` if needed
609. **Save the report** to `reports/podcasts/YYYY-MM-DD_sanitized-title.md`
6110. **Update the activity log** at `logs/YYYY-MM-DD.md`:
62 - Add entry under "## Podcasts Listened" section
63 - Format: `- [Title](../reports/podcasts/filename.md) - HH:MM`
6411. **Confirm to user** what was saved
65
66## Report Format
67
68```markdown
69# [Episode Title]
70
71**Podcast**: [Show Name]
72**Host(s)**: [Names]
73**Guest(s)**: [Names if any]
74**Source**: [file path or URL]
75**Date**: YYYY-MM-DD
76**Type**: Podcast Episode
77
78---
79
80[Analysis content following prompts/podcast.md structure]
81
82---
83
84## My Notes
85
86[Empty space for user notes]
87```
88
89## Error Handling
90
91- If file doesn't exist: Ask for correct path
92- If transcript too short: Note but analyze
93- If no speaker identification: Best effort analysis
94- If prompts/podcast.md missing: Use prompts/default.md
95- If audio download fails: Check yt-dlp is installed (`pip install yt-dlp`)
96- If transcription fails: Check OPENAI_API_KEY is configured in .env
97- If audio file too large: OpenAI API limit is 25MB, suggest splitting
98
99## Requirements for Audio
100
101- yt-dlp for downloading audio (`pip install yt-dlp`)
102- OpenAI API key for transcription (set OPENAI_API_KEY in web/backend/.env)
103- Alternatively: Local Whisper installation (`pip install openai-whisper`)
104
105## Related
106
107- Slash command: `/podcast <filepath-or-url>`
108- Prompt file: `prompts/podcast.md`
109- Output: `reports/podcasts/`
110- Transcription service: `web/backend/services/transcription.py`