🎙️ Podcastfy: Alternativa Open Source a los Podcasts de NotebookLM
RESUMEN EJECUTIVO
Podcastfy (souzatharsis/podcastfy, +6,650 ⭐, licencia Apache 2.0) es la alternativa abierta, programable y multimodal a la función estrella de Google NotebookLM (Audio Overviews / Deep Dive Podcasts).
Permite convertir cualquier contenido multimodal —páginas web, PDFs, imágenes, vídeos de YouTube, texto plano o temas con búsqueda web en vivo— en un podcast conversacional cautivador entre dos presentadores con química natural, interrupciones, risas y analogías, disponible en múltiples idiomas (incluido español).
A diferencia de la herramienta cerrada de Google, Podcastfy es 100% personalizable: permite elegir el LLM (Gemini, Claude, GPT o local con Ollama), el motor de voz (EdgeTTS gratis, Gemini Studio MultiSpeaker, ElevenLabs, OpenAI) y la duración (cápsulas de 2-5 min o episodios completos de más de 30 minutos).
📋 Ficha Técnica y Recursos
| Parámetro | Detalle Técnico |
|---|---|
| Repositorio Oficial | souzatharsis/podcastfy (GitHub) |
| Autor Principal | Tharsis Souza (Coautor de LLMs: The Hard Parts, O’Reilly) |
| Licencia | Apache License 2.0 (Uso comercial libre, integrable en SaaS propios) |
| Comunidad | +6,650 estrellas y +770 forks en GitHub |
| Distribución | Paquete PyPI (pip install podcastfy), CLI, FastAPI y Docker |
| Entradas Multimodales | URLs web, PDFs, Archivos de imagen (PNG/JPG), YouTube, Textos, Tópicos libres |
| Duración de Audio | Shorts (2–5 min) o Longform (30+ min con múltiples rondas) |
| Motores TTS Soportados | Microsoft Edge TTS (100% gratis), Gemini Multi-Speaker, ElevenLabs, OpenAI TTS |
| Modelos de Lenguaje | Google Gemini (Recomendado), OpenAI, Anthropic Claude, o Local con Ollama / HuggingFace |
⚖️ Cuadro Comparativo: Podcastfy vs. Google NotebookLM
| Característica | 🎙️ Podcastfy.ai | 📓 Google NotebookLM |
|---|---|---|
| Licencia & Código | 🟢 Open Source (Apache 2.0) | 🔴 Cerrado y propietario |
| Interfaz & Automatización | 🟢 CLI, Python API, Docker, FastAPI | 🔴 Solo interfaz web de Google |
| Costo de Voces (TTS) | 🟢 $0 con EdgeTTS / Flexible con ElevenLabs | 🟡 Gratis mientras dure la beta |
| Soporte de Imágenes | 🟢 Sí: Analiza obras de arte, diagramas e infografías | ⚠️ Limitado a texto en documentos |
| Búsqueda Web en Vivo | 🟢 Sí: Genera episodios desde un tema con web ground | 🔴 Solo fuentes estáticas subidas |
| Personalización de Voces | 🟢 Total: Voces, acentos, velocidad, tono y roles | 🔴 Fijo (dos voces predeterminadas) |
| Privacidad & Modo Offline | 🟢 Posible con Ollama / HuggingFace local | 🔴 Todo viaja a servidores de Google |
| Formato de Duración | 🟢 Configurable (2–5 min cápsula o 30+ min extenso) | 🟡 Longitud automática (~10-15 min) |
🏗️ Arquitectura y Flujo de Generación
flowchart TD subgraph Fuentes ["📥 Entradas Multimodales"] F1["🌐 Páginas Web / URLs"] F2["📄 Documentos PDF / Markdown"] F3["🖼️ Imágenes / Infografías / Arte"] F4["📺 Transcripciones de YouTube"] F5["💡 Tópico con Búsqueda Web en Vivo"] end Fuentes --> Extractor["🔍 Content Extractor & Parser"] subgraph Engine ["🧠 Orquestador de Conversación"] Extractor --> LLM["🤖 LLM (Gemini 2.5 / GPT-4o / Ollama)<br>Rol Presentador 1: Explicador Principal<br>Rol Presentador 2: Curioso / Preguntador"] Config["⚙️ YAML Config<br>(Tono, humor, idioma, analogías)"] --> LLM LLM --> Script["📝 Guion de Diálogo con Marcas Conversacionales"] end subgraph Audio ["🎙️ Síntesis de Voz Multihablante"] Script --> TTSSelector{"Motor TTS Elegido"} TTSSelector -->|100% Gratis| Edge["🔊 Microsoft Edge TTS<br>(Alvaro & Dalia / Jenny & Eric)"] TTSSelector -->|Ultra Natural| GeminiTTS["⚡ Gemini Studio MultiSpeaker"] TTSSelector -->|Emocional / Clon| Eleven["💎 ElevenLabs v2"] TTSSelector -->|Estándar| OpenAITTS["🤖 OpenAI tts-1-hd"] end Audio --> Merger["✂️ Ensamblado FFmpeg + Mensaje de Cierre"] Merger --> Final["🎧 Episodio Final MP3 + Transcripción TXT"]
🎭 Configuración del Diálogo y Personalidades (conversation_config.yaml)
Podcastfy permite definir la personalidad del podcast mediante archivos YAML:
# Estilo de conversación general
conversation_style:
- "engaging"
- "fast-paced"
- "enthusiastic"
# Roles de los dos presentadores
roles_person1: "presentador y divulgador técnico principal"
roles_person2: "entrevistador curioso, hace preguntas difíciles y analogías cotidianas"
# Estructura del episodio
dialogue_structure:
- "Introducción dinámica con gancho"
- "Desglose de los puntos clave con debate"
- "Conclusiones prácticas para la audiencia"
podcast_name: "Ryukami Tech Digest"
podcast_tagline: "Inteligencia Artificial y Desarrollo en tu idioma"
output_language: "Spanish"
# Técnicas de retención de audiencia
engagement_techniques:
- "preguntas retóricas"
- "anécdotas y ejemplos del mundo real"
- "humor ligero y reacciones espontáneas"
# Configuración del motor de síntesis de voz
text_to_speech:
default_tts_model: "edge" # 'edge' para coste $0, 'gemini' o 'elevenlabs'
edge:
default_voices:
question: "es-MX-DaliaNeural" # Presentadora 2
answer: "es-ES-AlvaroNeural" # Presentador 1
audio_format: "mp3"
ending_message: "¡Hasta el próximo episodio de Ryukami Tech Digest!"🛠️ Instalación y Uso en Linux Mint
1. Requisitos Previos
Instala FFmpeg y las herramientas del sistema:
sudo apt update
sudo apt install -y ffmpeg python3-pip python3-venv git2. Instalación Directa con pip
# Crear entorno virtual aislado
python3 -m venv ~/podcastfy-env
source ~/podcastfy-env/bin/activate
# Instalar Podcastfy
pip install podcastfy3. Configuración de Claves de API (.env)
Crea un archivo .env o exporta las variables según el proveedor que elijas:
# Recomendado: Gemini para redacción de guiones (rápido y con 1M de tokens)
export GEMINI_API_KEY="tu_clave_de_google_ai_studio"
# Opcional si usas OpenAI o ElevenLabs:
# export OPENAI_API_KEY="sk-..."
# export ELEVENLABS_API_KEY="..."💻 Ejemplos Prácticos de Generación
A. Crear Podcast desde una o varias URLs (Modo CLI)
# Generar usando EdgeTTS gratuito (sin coste de voz)
podcastfy --url https://arxiv.org/abs/2301.00000 --tts-model edgeB. Generar a partir de un Tema con Búsqueda Web en Vivo
No necesitas tener un enlace previo; Podcastfy investiga en la web y arma el episodio:
podcastfy --topic "Avances de Gemini 4 Argon y agentes autónomos en 2026" --tts-model edgeC. Generar un Episodio Extenso de Formato Largo (+30 min)
podcastfy --url https://es.wikipedia.org/wiki/Inteligencia_artificial --longform --tts-model edgeD. Uso Programático en Scripts de Python
from podcastfy.client import generate_podcast
# Generar a partir de múltiples fuentes multimodales
audio_path = generate_podcast(
urls=["https://github.com/souzatharsis/podcastfy"],
image_paths=["/home/alexwce/Imagenes/arquitectura.png"],
tts_model="edge",
conversation_config={
"output_language": "Spanish",
"podcast_name": "Ryukami AI Cast"
}
)
print(f"🎙️ Podcast generado exitosamente en: {audio_path}")🧩 Ecosistema Multimedia en Ryukami Labs
| Herramienta | Caso de Uso Principal | Formato Final |
|---|---|---|
| 🎙️ Podcastfy | Podcasts conversacionales multimodales (Estilo NotebookLM) | Audio MP3 conversacional (2 personas) |
| ✂️ AI YouTube Shorts Generator | Recorte de vídeos largos a shorts virales 9:16 con face-tracking | Vídeos verticales MP4 9:16 |
| 🏭 Short Video Factory | Fábrica de vídeos verticales en lote con B-roll y EdgeTTS | Lotes de vídeos MP4 9:16 |
| 🎙️ Kokoro TTS | Síntesis de voz ultra-ligera y soberana local (82M) | Audio WAV/MP3 mono/estéreo |
| 🌐 OpenCreator | Doblaje, traducción y clonación labial multimodal | Vídeos completos traducidos |
🔗 Referencias y Enlaces en la Bóveda
- Síntesis de voz local ultra-rápida: 🎙️ Kokoro TTS (82M)
- Alternativa abierta a Opus Clip: ✂️ AI Shorts Generator (Opus Clip Open Source)
- Fábrica de vídeos cortos en lote: Shorts)
- Suite de doblaje y traducción: 🎬 OpenCreator (Traducción & Doblaje IA)
- Índice General: ⚡ Ryukami Labs