Agent skill
podcast-transcript-fetcher
Use when fetching, searching, or analyzing transcripts from Lenny's Podcast, Dwarkesh Podcast, Cheeky Pint, 20VC, or A16z Podcast.
Filed under Content and SEO.
From Varnan-Tech/opendirectory · 57 skills · 626 · pushed 2026-08-16
What it does when it runs
Use when fetching, searching, or analyzing transcripts from Lenny's Podcast, Dwarkesh Podcast, Cheeky Pint, 20VC, or A16z Podcast. Tier 2 (RSS+Groq Whisper) is the recommended approach -- fast, free, and most reliable. Also use when asked to "get transcript", "find episode", "summarize podcast", or "search podcast content". Do not use for general web scraping or non-podcast audio transcription.
Read from the skill and the 6 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- GROQ_API_KEY
- TADDY_API_KEY
- Hosts it reaches
- 20vc.com
- 20vc.substack.com
- a16z.com
- api.substack.com
- api.taddy.org
- console.groq.com
- download-directory.github.io
- dwarkesh.substack.com
- feeds.libsyn.com
- feeds.simplecast.com
- feeds.transistor.fm
- lennyspodcast.substack.com
- manus.im
- opendirectory.dev
- podcastindex.org
- podscripts.co
- taddy.org
- thecheekypint.com
- www.dropbox.com
- www.dwarkesh.com
- www.itunes.com
- www.lennyspodcast.com
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- shellwrites filesnetwork
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/Varnan-Tech/opendirectory.git /tmp/opendirectory git -C /tmp/opendirectory sparse-checkout set "skills/podcast-transcript-fetcher" mkdir -p ~/.claude/skills/podcast-transcript-fetcher cp -R "/tmp/opendirectory/skills/podcast-transcript-fetcher/." ~/.claude/skills/podcast-transcript-fetcher/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
Or take the whole library
This repo ships a .claude-plugin manifest, so Claude Code can install all 57 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.
/plugin marketplace add Varnan-Tech/opendirectory /plugin
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
Before you install: this skill will not complete its job on a bare agent. It needs GROQ_API_KEY, TADDY_API_KEY, which you have to obtain separately.
The skill
Source on GitHub ↗Reproduced in full from Varnan-Tech/opendirectory/blob/62e437ab13408171805a87d16f5cb0151f96ea3c/skills/podcast-transcript-fetcher/SKILL.md, which is licensed MIT (repository). 1,022 words, 26 headings.
Podcast Transcript Fetcher
Fetch transcripts from 5 supported podcasts. Tier 2 (RSS+Groq Whisper) is the recommended approach -- fast, free, and the most reliable across all podcasts. Tier 1 free sources are best-effort (limited availability). Tier 3 Taddy API is the premium/commercial option.
Quick Reference
# Get latest episode transcript (auto-detects best method)
python scripts/get_transcript.py "Lenny's Podcast" --latest
# Search by episode title or number
python scripts/get_transcript.py 20vc --episode "Marc Andreessen"
python scripts/get_transcript.py dwarkesh --episode 15
# Force specific method
python scripts/get_transcript.py "cheeky pint" --latest --method whisper
python scripts/get_transcript.py a16z --latest --method taddy
# Save to file
python scripts/get_transcript.py lennys --latest --output transcript.md
# List all supported podcasts
python scripts/get_transcript.py --list-podcasts
Supported Podcasts
| Podcast | Tier 1 (best-effort) | Tier 2 RSS+Whisper [RECOMMENDED] | Tier 3 Taddy (premium) |
|---|---|---|---|
| Lenny's Podcast | GitHub archive (269 transcripts) | ✅ Substack RSS | ✅ Covered |
| Dwarkesh Podcast | Website scrape + Substack PDF | ✅ Substack RSS | ✅ Covered |
| Cheeky Pint | (none) | ✅ Transistor.fm RSS | ✅ Covered |
| 20VC | Substack PDF | ✅ Libsyn RSS | ✅ Covered |
| A16z Podcast | Website scrape | ✅ Simplecast RSS | ✅ Covered |
Implementation
1. Install Dependencies
# Core (always required)
pip install requests
# Cloud transcription (recommended — fast, free tier)
pip install groq
export GROQ_API_KEY="your-key" # Get at https://console.groq.com
# Local transcription (free, needs ~5GB RAM)
pip install faster-whisper
# Audio compression (for Groq's 25 MB limit — Windows: winget/scoop)
# winget install ffmpeg or scoop install ffmpeg
# Taddy API (commercial, optional)
export TADDY_API_KEY="your-key" # Get at https://taddy.org
2. Get a Transcript
The script auto-selects the best method. Tier 2 is the default recommendation:
Tier 1 → Tier 2 (RECOMMENDED) → Tier 3
(best-effort) (Whisper) (Taddy API premium)
Tier 1: Free direct sources (best-effort, limited availability)
- Lenny's: Clones
ChatPRD/lennys-podcast-transcriptsand searches by title - Dwarkesh: Substack PDF scrape
- 20VC: Substack PDF scrape
- A16z: Website scrape
- Cheeky Pint: No Tier 1 sources available
- Note: Tier 1 sources are best-effort and limited. Tier 2 (RSS+Whisper) is the recommended approach.
Tier 2: RSS + Whisper transcription [RECOMMENDED]
- Downloads MP3 from podcast RSS feed
- Compresses if >25 MB (ffmpeg)
- Transcribes via Groq Whisper API (free tier, ~10s per hour of audio)
- Fast, free, and works for every podcast in the registry
- Default recommendation for all use cases
Tier 3: Taddy API (commercial/premium)
- Requires
TADDY_API_KEY($75/mo+) - Use for large-scale or production transcript needs
- Covers all 5 podcasts with auto-transcription
3. Analyze with AI
Once you have a transcript, pipe it to the agent for analysis:
I have this transcript from [podcast]. Can you:
1. Summarize the key arguments
2. Extract 3 actionable insights
3. Identify any controversial claims
4. Compare with [other podcast] on the same topic
Supported Workflows
Single Episode
| Scenario | Command |
|---|---|
| Latest episode | get_transcript.py "Lenny's Podcast" --latest |
| Specific episode by title | get_transcript.py 20vc --episode "Sam Altman" |
| Episode by number | get_transcript.py dwarkesh --episode 42 |
| Force Whisper transcription (Tier 2, recommended) | get_transcript.py a16z --latest --method whisper |
| Force Taddy API (premium) | get_transcript.py lennys --latest --method taddy |
| Save to Markdown | get_transcript.py cheeky-pint --latest --output episode.md |
| JSON output | get_transcript.py dwarkesh --latest --json |
Cross-Podcast Search & Batch
| Scenario | Command |
|---|---|
| Search all podcasts by keyword | get_transcript.py --search "Marc Andreessen" |
| Search by guest name | get_transcript.py --guest "Sam Altman" |
| Search within one podcast | get_transcript.py "Lenny's Podcast" --search "vibe coding" |
| Batch-transcribe last N episodes | get_transcript.py "Dwarkesh Podcast" --last 5 |
| Search + transcribe top matches | get_transcript.py --search "AI safety" --transcribe |
| Pipeline with custom count | get_transcript.py --search "scaling laws" --transcribe --transcribe-count 5 |
| Filtered search pipeline | get_transcript.py "A16z Podcast" --search "crypto" --transcribe |
Output Structure
Batch transcription saves to output/ with per-podcast subdirectories:
output/dwarkesh-podcast/Dwarkesh Podcast_2024-01-15_agi-is-still-30-years-away.md
output/20vc/20 Minutes VC (20VC)_2024-03-10_funding-round-analysis.md
Each file includes a YAML frontmatter header:
---
podcast: Dwarkesh Podcast
episode: AGI is still 30 years away
date: 2024-01-15
url: https://...
source: whisper
---
Podcast Registry
The registry at scripts/podcasts.json maps each podcast to its RSS feeds, transcript sources, and API endpoints. To add new podcasts:
{
"id": "new-podcast",
"name": "New Podcast",
"rss": "https://example.com/feed.xml",
"transcript_sources": {
"primary": {"type": "website_scrape", "url": "https://example.com"}
}
}
Troubleshooting
| Problem | Solution |
|---|---|
| "No transcript found" | Tier 2 (RSS+Whisper) is the recommended approach. If auto mode fails, try --method whisper to force it. |
| RSS fetch fails | RSS feeds may change; check scripts/podcasts.json for current URLs |
| Audio download slow | Large MP3s can take minutes on slow connections |
| Groq rate limited | Wait or switch to local faster-whisper |
| Taddy not returning transcripts | Some episodes lack transcripts; try --method whisper |
| Podcast not in registry | Add it to scripts/podcasts.json |
| Unicode error on Windows | Fixed: script auto-reconfigures stdout to UTF-8; saved files use UTF-8 encoding |
| Audio > 25 MB for Groq | Install ffmpeg: winget install ffmpeg (Windows) or brew install ffmpeg (macOS) |
RSS Feed Status (as of 2026-06)
| Podcast | Old Feed (broken) | Current Feed |
|---|---|---|
| Cheeky Pint | feeds.transistor.fm/the-cheeky-pint (404) | feeds.transistor.fm/cheeky-pint-with-john-collison |
| 20VC | feeds.simplecast.com/3GxrMqOd (404) | feeds.libsyn.com/61840/rss |
| A16z | feeds.simplecast.com/0cJfpoz2 (404) | feeds.simplecast.com/JGE3yC0V |
Common Mistakes
- Forgetting API keys: Set
GROQ_API_KEYin your env or.envfile - Relying on Tier 1 free sources: Tier 1 is best-effort and limited. Always fall back to Tier 2 (RSS+Whisper) which is the recommended method.
- Not cloning the Lenny's repo first: The GitHub archive must be cloned locally for Tier 1 to work
- Using --method taddy without TADDY_API_KEY: Falls through silently; set the key or use auto mode
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- podcast-pipeline by ericosiu · 3,483
- podcast-marketing by OpenClaudia · 677
- transcript-analysis by kenny589 · 64
- youtube-apify-transcript by edupegoretti · 0
Need help setting it up?
This page tells you what podcast-transcript-fetcher does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.