14.6k Stars: Controla Google NotebookLM con Python y conéctalo a Claude Code
- notebooklm ai
- notebooklm tutorial
- notebooklm
- notebooklm oficial
La web de Google NotebookLM resulta cómoda para uso ocasional, pero en cuanto necesitas pipelines de investigación, scripts o flujos con agentes de IA, chocas con un muro: casi todo exige clics en la interfaz y el trabajo por lotes se vuelve tedioso.
notebooklm-py en GitHub ( 14.6k+ stars a mayo de 2026) cubre ese hueco: una capa Python sobre NotebookLM que además se conecta a Claude Code y agentes similares.

Dónde se queda corta la web de NotebookLM
NotebookLM permite subir PDF, URLs y enlaces de YouTube, chatear y generar podcasts, diapositivas, cuestionarios y más. Si buscas notebooklm tutorial encontrarás guías de inicio, pero la interfaz oficial tiene límites claros:
- Importar y descargar por lotes implica ir uno a uno con clics
- Los quiz y las flashcards solo funcionan en el navegador — sin exportar a JSON o Markdown
- Los mapas mentales y las tablas de datos no exponen datos estructurados en la web
- No hay integración nativa con Claude Code, Codex u otros agentes de programación
Para tomar notas de vez en cuando, la web basta. Para pipelines, jobs de CI o «lee 20 papers y genera quiz», necesitas una API programática.
¿Qué es notebooklm-py?
notebooklm-py es un SDK y CLI no oficial en Python, mantenido por la comunidad (licencia MIT). Mediante ingeniería inversa del RPC interno de Google expone casi todas las capacidades de NotebookLM, más funciones que la web nunca ofreció.
Aviso: No está afiliado a Google. Usa APIs no documentadas que pueden dejar de funcionar. Ideal para proyectos personales, investigación y prototipos.
Tres formas de usarlo
| Método | Ideal para |
|---|---|
| Python API | Integración en apps, pipelines asíncronos, scripts personalizados |
| CLI | Scripts de shell, tareas rápidas, CI/CD |
| Integración con agentes | Claude Code, Codex, OpenClaw, automatización en lenguaje natural |
Lo que la web no ofrece y sí notebooklm-py
| Capacidad | Qué obtienes |
|---|---|
| Descarga por lotes | Todos los artefactos de un tipo a la vez (MP3, MP4, PDF, PNG, etc.) |
| Exportar quiz / flashcards | JSON, Markdown, HTML — no solo la vista interactiva |
| JSON de mapa mental | Datos jerárquicos para D3, ECharts u otras herramientas |
| CSV de tablas de datos | Exportaciones listas para hoja de cálculo |
| PPTX de diapositivas | PowerPoint editable, no solo PDF |
| Revisión de una diapositiva | Cambiar una slide con un prompt en lenguaje natural |
| Guardar chat en notas | Persistir preguntas y respuestas o conversaciones completas en el cuaderno |
| Texto completo de fuentes | Acceso programático al texto indexado de las fuentes |
| Perfiles multi-cuenta | Cambiar de cuenta de Google sin volver a iniciar sesión |
| Importar cookies del navegador | Reutilizar una sesión ya autenticada |
La cobertura de generación es amplia: resúmenes de audio (4 formatos, más de 50 idiomas), vídeo (incluido estilo cinematic), infografías, informes, quiz, flashcards, mapas mentales y tablas de datos — a menudo con controles más finos que en la web.
Instalación rápida
Usuarios de CLI (incl. agentes):
pip install "notebooklm-py[browser]"
playwright install chromium
notebooklm login
notebooklm auth check --test --json
Solo biblioteca (con un storage_state.json previo, sin Chromium):
pip install notebooklm-py
Consulta installation.md del proyecto para más detalles.
Tutorial CLI: del cuaderno a la descarga del podcast
notebooklm create "AI Research"
notebooklm use <notebook_id>
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add "./paper.pdf"
notebooklm ask "What are the key themes?"
notebooklm generate audio "make it engaging" --wait
notebooklm download audio ./podcast.mp3
notebooklm generate quiz --difficulty hard
notebooklm download quiz --format markdown ./quiz.md
Usa --prompt-file para prompts largos que superen el límite de longitud del shell.
Ejemplo de Python API
import asyncio
from notebooklm import NotebookLMClient
async def main():
async with await NotebookLMClient.from_storage() as client:
nb = await client.notebooks.create("Research")
await client.sources.add_url(nb.id, "https://example.com", wait=True)
result = await client.chat.ask(nb.id, "Summarize this")
print(result.answer)
status = await client.artifacts.generate_quiz(nb.id)
await client.artifacts.wait_for_completion(nb.id, status.task_id)
await client.artifacts.download_quiz(nb.id, "quiz.json", output_format="json")
asyncio.run(main())
El diseño asíncrono encaja bien en flujos asyncio más grandes.
Integración con Claude Code
El repositorio incluye un Agent Skill. Dos formas de instalarlo:
# Opción 1: instalar vía CLI en Claude Code / directorio .agents
notebooklm skill install
# Opción 2: ecosistema skills
npx skills add teng-lin/notebooklm-py
Tras la instalación, puedes decirle a Claude Code: «Añade este PDF a NotebookLM, genera un quiz difícil y exporta Markdown» — el agente ejecuta la CLI notebooklm en lugar de hacerte navegar manualmente.
Para desarrolladores que montan flujos notebooklm ai y quieren todas las capacidades de generación del notebooklm oficial, es hoy la vía más directa.
¿Prefieres no montar un entorno local?
Playwright, cookies y cambios de API no son para todos. Si quieres centrarte en subir → preguntar → generar sin instalar nada, prueba nuestra experiencia NotebookLM online:
Resumen
notebooklm-py convierte NotebookLM de una herramienta web solo con clics en un motor de conocimiento scriptable y listo para agentes. Las 14.6k stars reflejan demanda real: investigadores que exportan quiz por lotes, creadores que encadenan generación de podcasts en pipelines, desarrolladores que importan y descargan desde Claude Code con una sola frase.
Reserva la web para el uso diario ligero; cuando necesites automatización y exportaciones que el navegador nunca ofreció, Python + CLI + agentes completan el puzzle.
Proyecto: github.com/teng-lin/notebooklm-py