Obtenedor de Transcripciones de Podcasts
Obtén transcripciones de 5 podcasts compatibles. El nivel 2 (RSS+Groq Whisper) es el enfoque recomendado: rápido, gratuito y el más confiable en todos los podcasts. El nivel 1 (fuentes gratuitas) es de mejor esfuerzo (disponibilidad limitada). El nivel 3 (API Taddy) es la opción comercial/premium.
Referencia Rápida
# Obtén la transcripción del episodio más reciente (detecta automáticamente el mejor método)
python scripts/get_transcript.py "Lenny's Podcast" --latest
# Busca por título o número de episodio
python scripts/get_transcript.py 20vc --episode "Marc Andreessen"
python scripts/get_transcript.py dwarkesh --episode 15
# Forzar un método específico
python scripts/get_transcript.py "cheeky pint" --latest --method whisper
python scripts/get_transcript.py a16z --latest --method taddy
# Guardar en un archivo
python scripts/get_transcript.py lennys --latest --output transcript.md
# Listar todos los podcasts compatibles
python scripts/get_transcript.py --list-podcasts
Podcasts Compatibles
| Podcast | Nivel 1 (mejor esfuerzo) | Nivel 2 RSS+Whisper [RECOMENDADO] | Nivel 3 Taddy (premium) |
|---|---|---|---|
| Lenny's Podcast | Archivo de GitHub (269 transcripciones) | ✅ Substack RSS | ✅ Cubierto |
| Dwarkesh Podcast | Raspado web + Substack PDF | ✅ Substack RSS | ✅ Cubierto |
| Cheeky Pint | (ninguno) | ✅ Transistor.fm RSS | ✅ Cubierto |
| 20VC | Substack PDF | ✅ Libsyn RSS | ✅ Cubierto |
| A16z Podcast | Raspado web | ✅ Simplecast RSS | ✅ Cubierto |
Implementación
1. Instalar Dependencias
# Básicas (siempre necesarias)
pip install requests
# Transcripción en la nube (recomendada: rápida, nivel gratuito)
pip install groq
export GROQ_API_KEY="tu-clave" # Obténla en https://console.groq.com
# Transcripción local (gratuita, necesita ~5GB de RAM)
pip install faster-whisper
# Compresión de audio (para el límite de 25 MB de Groq — Windows: winget/scoop)
# winget install ffmpeg o scoop install ffmpeg
# API Taddy (comercial, opcional)
export TADDY_API_KEY="tu-clave" # Obténla en https://taddy.org
2. Obtener una Transcripción
El script selecciona automáticamente el mejor método. El nivel 2 es la recomendación predeterminada:
Nivel 1 → Nivel 2 (RECOMENDADO) → Nivel 3
(mejor esfuerzo) (Whisper) (API Taddy premium)
Nivel 1: Fuentes directas gratuitas (mejor esfuerzo, disponibilidad limitada)
- Lenny's: Clona
ChatPRD/lennys-podcast-transcriptsy busca por título - Dwarkesh: Raspado de PDF de Substack
- 20VC: Raspado de PDF de Substack
- A16z: Raspado web
- Cheeky Pint: No hay fuentes de nivel 1 disponibles
- Nota: Las fuentes de nivel 1 son de mejor esfuerzo y limitadas. El nivel 2 (RSS+Whisper) es el enfoque recomendado.
Nivel 2: Transcripción RSS + Whisper [RECOMENDADO]
- Descarga MP3 del feed RSS del podcast
- Comprime si es >25 MB (ffmpeg)
- Transcribe mediante Groq Whisper API (nivel gratuito, ~10s por hora de audio)
- Rápido, gratuito y funciona para todos los podcasts en el registro
- Recomendación predeterminada para todos los casos de uso
Nivel 3: API Taddy (comercial/premium)
- Requiere
TADDY_API_KEY($75/mes+) - Úsalo para necesidades de transcripción a gran escala o en producción
- Cubre los 5 podcasts con transcripción automática
3. Analizar con IA
Una vez que tengas una transcripción, pásala al agente para su análisis:
Tengo esta transcripción de [podcast]. ¿Puedes:
1. Resumir los argumentos clave
2. Extraer 3 ideas prácticas
3. Identificar afirmaciones controvertidas
4. Comparar con [otro podcast] sobre el mismo tema
Flujos de Trabajo Compatibles
Episodio Único
| Escenario | Comando |
|---|---|
| Episodio más reciente | get_transcript.py "Lenny's Podcast" --latest |
| Episodio específico por título | get_transcript.py 20vc --episode "Sam Altman" |
| Episodio por número | get_transcript.py dwarkesh --episode 42 |
| Forzar transcripción Whisper (Nivel 2, recomendado) | get_transcript.py a16z --latest --method whisper |
| Forzar API Taddy (premium) | get_transcript.py lennys --latest --method taddy |
| Guardar como Markdown | get_transcript.py cheeky-pint --latest --output episode.md |
| Salida JSON | get_transcript.py dwarkesh --latest --json |
Búsqueda entre Podcasts y Lotes
| Escenario | Comando |
|---|---|
| Buscar en todos los podcasts por palabra clave | get_transcript.py --search "Marc Andreessen" |
| Buscar por nombre de invitado | get_transcript.py --guest "Sam Altman" |
| Buscar dentro de un podcast | get_transcript.py "Lenny's Podcast" --search "vibe coding" |
| Transcribir por lote los últimos N episodios | get_transcript.py "Dwarkesh Podcast" --last 5 |
| Buscar + transcribir las mejores coincidencias | get_transcript.py --search "AI safety" --transcribe |
| Tubería con recuento personalizado | get_transcript.py --search "scaling laws" --transcribe --transcribe-count 5 |
| Tubería de búsqueda filtrada | get_transcript.py "A16z Podcast" --search "crypto" --transcribe |
Estructura de Salida
La transcripción por lotes se guarda en output/ con subdirectorios por 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
Cada archivo incluye un encabezado YAML:
---
podcast: Dwarkesh Podcast
episode: AGI is still 30 years away
date: 2024-01-15
url: https://...
source: whisper
---
Registro de Podcasts
El registro en scripts/podcasts.json asigna cada podcast a sus feeds RSS, fuentes de transcripción y endpoints de API. Para agregar nuevos podcasts:
{
"id": "new-podcast",
"name": "New Podcast",
"rss": "https://example.com/feed.xml",
"transcript_sources": {
"primary": {"type": "website_scrape", "url": "https://example.com"}
}
}
Solución de Problemas
| Problema | Solución |
|---|---|
| "No se encontró transcripción" | El nivel 2 (RSS+Whisper) es el enfoque recomendado. Si el modo automático falla, prueba --method whisper para forzarlo. |
| La obtención del RSS falla | Los feeds RSS pueden cambiar; verifica scripts/podcasts.json para las URL actuales |
| Descarga de audio lenta | Los MP3 grandes pueden tardar minutos en conexiones lentas |
| Límite de velocidad de Groq | Espera o cambia a faster-whisper local |
| Taddy no devuelve transcripciones | Algunos episodios carecen de transcripciones; prueba --method whisper |
| Podcast no está en el registro | Agrégalo a scripts/podcasts.json |
| Error de Unicode en Windows | Solucionado: el script reconfigura automáticamente stdout a UTF-8; los archivos guardados usan codificación UTF-8 |
| Audio > 25 MB para Groq | Instala ffmpeg: winget install ffmpeg (Windows) o brew install ffmpeg (macOS) |
Estado de los Feeds RSS (a junio de 2026)
| Podcast | Feed Antiguo (roto) | Feed Actual |
|---|---|---|
| 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 |
Errores Comunes
- Olvidar las claves de API: Configura
GROQ_API_KEYen tu entorno o archivo.env - Confiar en fuentes de nivel 1: El nivel 1 es de mejor esfuerzo y limitado. Siempre recurre al nivel 2 (RSS+Whisper), que es el método recomendado.
- No clonar primero el repositorio de Lenny's: El archivo de GitHub debe clonarse localmente para que funcione el nivel 1
- Usar --method taddy sin TADDY_API_KEY: Fallará silenciosamente; configura la clave o usa el modo automático