Récupérateur de transcriptions de podcasts
Récupérez les transcriptions de 5 podcasts pris en charge. Le niveau 2 (RSS+Groq Whisper) est l'approche recommandée – rapide, gratuite et la plus fiable pour tous les podcasts. Les sources gratuites de niveau 1 sont fournies au mieux (disponibilité limitée). Le niveau 3 via l'API Taddy est l'option premium/commerciale.
Référence rapide
# Récupérer la transcription du dernier épisode (détection automatique de la meilleure méthode)
python scripts/get_transcript.py "Lenny's Podcast" --latest
# Rechercher par titre ou numéro d'épisode
python scripts/get_transcript.py 20vc --episode "Marc Andreessen"
python scripts/get_transcript.py dwarkesh --episode 15
# Forcer une méthode spécifique
python scripts/get_transcript.py "cheeky pint" --latest --method whisper
python scripts/get_transcript.py a16z --latest --method taddy
# Enregistrer dans un fichier
python scripts/get_transcript.py lennys --latest --output transcript.md
# Lister tous les podcasts pris en charge
python scripts/get_transcript.py --list-podcasts
Podcasts pris en charge
| Podcast | Niveau 1 (au mieux) | Niveau 2 RSS+Whisper [RECOMMANDÉ] | Niveau 3 Taddy (premium) |
|---|---|---|---|
| Lenny's Podcast | Archive GitHub (269 transcriptions) | ✅ Substack RSS | ✅ Couvert |
| Dwarkesh Podcast | Scraping web + PDF Substack | ✅ Substack RSS | ✅ Couvert |
| Cheeky Pint | (aucun) | ✅ Transistor.fm RSS | ✅ Couvert |
| 20VC | PDF Substack | ✅ Libsyn RSS | ✅ Couvert |
| A16z Podcast | Scraping web | ✅ Simplecast RSS | ✅ Couvert |
Implémentation
1. Installer les dépendances
# Noyau (toujours requis)
pip install requests
# Transcription cloud (recommandée – rapide, niveau gratuit)
pip install groq
export GROQ_API_KEY="votre-clé" # Obtenez-la sur https://console.groq.com
# Transcription locale (gratuite, nécessite ~5 Go de RAM)
pip install faster-whisper
# Compression audio (pour la limite de 25 Mo de Groq – Windows : winget/scoop)
# winget install ffmpeg ou scoop install ffmpeg
# API Taddy (commerciale, optionnelle)
export TADDY_API_KEY="votre-clé" # Obtenez-la sur https://taddy.org
2. Obtenir une transcription
Le script sélectionne automatiquement la meilleure méthode. Le niveau 2 est la recommandation par défaut :
Niveau 1 → Niveau 2 (RECOMMANDÉ) → Niveau 3
(au mieux) (Whisper) (API Taddy premium)
Niveau 1 : Sources directes gratuites (au mieux, disponibilité limitée)
- Lenny's : Clone le dépôt
ChatPRD/lennys-podcast-transcriptset recherche par titre - Dwarkesh : Scraping de PDF Substack
- 20VC : Scraping de PDF Substack
- A16z : Scraping du site web
- Cheeky Pint : Aucune source de niveau 1 disponible
- Remarque : Les sources de niveau 1 sont fournies au mieux et limitées. Le niveau 2 (RSS+Whisper) est l'approche recommandée.
Niveau 2 : RSS + transcription Whisper [RECOMMANDÉ]
- Télécharge le MP3 depuis le flux RSS du podcast
- Compresse si > 25 Mo (ffmpeg)
- Transcrit via l'API Groq Whisper (niveau gratuit, ~10 s par heure d'audio)
- Rapide, gratuit et fonctionne pour chaque podcast du registre
- Recommandation par défaut pour tous les cas d'utilisation
Niveau 3 : API Taddy (commerciale/premium)
- Nécessite
TADDY_API_KEY(75 $/mois et plus) - À utiliser pour des besoins de transcription à grande échelle ou en production
- Couvre les 5 podcasts avec transcription automatique
3. Analyser avec l'IA
Une fois que vous avez une transcription, transmettez-la à l'agent pour analyse :
J'ai cette transcription de [podcast]. Pouvez-vous :
1. Résumer les arguments clés
2. Extraire 3 informations exploitables
3. Identifier les affirmations controversées
4. Comparer avec [autre podcast] sur le même sujet
Workflows pris en charge
Épisode unique
| Scénario | Commande |
|---|---|
| Dernier épisode | get_transcript.py "Lenny's Podcast" --latest |
| Épisode spécifique par titre | get_transcript.py 20vc --episode "Sam Altman" |
| Épisode par numéro | get_transcript.py dwarkesh --episode 42 |
| Forcer la transcription Whisper (niveau 2, recommandé) | get_transcript.py a16z --latest --method whisper |
| Forcer l'API Taddy (premium) | get_transcript.py lennys --latest --method taddy |
| Enregistrer en Markdown | get_transcript.py cheeky-pint --latest --output episode.md |
| Sortie JSON | get_transcript.py dwarkesh --latest --json |
Recherche inter-podcasts et traitement par lot
| Scénario | Commande |
|---|---|
| Rechercher dans tous les podcasts par mot-clé | get_transcript.py --search "Marc Andreessen" |
| Rechercher par nom d'invité | get_transcript.py --guest "Sam Altman" |
| Rechercher dans un seul podcast | get_transcript.py "Lenny's Podcast" --search "vibe coding" |
| Transcrire par lot les N derniers épisodes | get_transcript.py "Dwarkesh Podcast" --last 5 |
| Rechercher et transcrire les meilleurs résultats | get_transcript.py --search "AI safety" --transcribe |
| Pipeline avec nombre personnalisé | get_transcript.py --search "scaling laws" --transcribe --transcribe-count 5 |
| Pipeline de recherche filtrée | get_transcript.py "A16z Podcast" --search "crypto" --transcribe |
Structure de sortie
La transcription par lot enregistre dans output/ avec des sous-répertoires par podcast :
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
Chaque fichier inclut un en-tête YAML :
---
podcast: Dwarkesh Podcast
episode: AGI is still 30 years away
date: 2024-01-15
url: https://...
source: whisper
---
Registre des podcasts
Le registre dans scripts/podcasts.json associe chaque podcast à ses flux RSS, sources de transcription et points de terminaison d'API. Pour ajouter de nouveaux podcasts :
{
"id": "new-podcast",
"name": "New Podcast",
"rss": "https://example.com/feed.xml",
"transcript_sources": {
"primary": {"type": "website_scrape", "url": "https://example.com"}
}
}
Dépannage
| Problème | Solution |
|---|---|
| "Aucune transcription trouvée" | Le niveau 2 (RSS+Whisper) est l'approche recommandée. Si le mode automatique échoue, essayez --method whisper pour forcer. |
| Échec de la récupération du flux RSS | Les flux RSS peuvent changer ; vérifiez les URL actuelles dans scripts/podcasts.json |
| Téléchargement audio lent | Les gros MP3 peuvent prendre quelques minutes sur des connexions lentes |
| Limitation de débit Groq | Attendez ou passez à faster-whisper local |
| Taddy ne renvoie pas de transcriptions | Certains épisodes manquent de transcriptions ; essayez --method whisper |
| Podcast non présent dans le registre | Ajoutez-le dans scripts/podcasts.json |
| Erreur Unicode sous Windows | Corrigé : le script reconfigure automatiquement stdout en UTF-8 ; les fichiers sauvegardés utilisent l'encodage UTF-8 |
| Audio > 25 Mo pour Groq | Installez ffmpeg : winget install ffmpeg (Windows) ou brew install ffmpeg (macOS) |
État des flux RSS (au 2026-06)
| Podcast | Ancien flux (cassé) | Flux actuel |
|---|---|---|
| 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 |
Erreurs courantes
- Oublier les clés API : Définissez
GROQ_API_KEYdans votre environnement ou fichier.env - Compter sur les sources gratuites de niveau 1 : Le niveau 1 est fourni au mieux et limité. Repliez-vous toujours sur le niveau 2 (RSS+Whisper) qui est la méthode recommandée.
- Ne pas cloner d'abord le dépôt Lenny's : L'archive GitHub doit être clonée localement pour que le niveau 1 fonctionne
- Utiliser --method taddy sans TADDY_API_KEY : Échoue silencieusement ; définissez la clé ou utilisez le mode automatique