← Volver al blog

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.

Controlar NotebookLM con Python

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étodoIdeal para
Python APIIntegración en apps, pipelines asíncronos, scripts personalizados
CLIScripts de shell, tareas rápidas, CI/CD
Integración con agentesClaude Code, Codex, OpenClaw, automatización en lenguaje natural

Lo que la web no ofrece y sí notebooklm-py

CapacidadQué obtienes
Descarga por lotesTodos los artefactos de un tipo a la vez (MP3, MP4, PDF, PNG, etc.)
Exportar quiz / flashcardsJSON, Markdown, HTML — no solo la vista interactiva
JSON de mapa mentalDatos jerárquicos para D3, ECharts u otras herramientas
CSV de tablas de datosExportaciones listas para hoja de cálculo
PPTX de diapositivasPowerPoint editable, no solo PDF
Revisión de una diapositivaCambiar una slide con un prompt en lenguaje natural
Guardar chat en notasPersistir preguntas y respuestas o conversaciones completas en el cuaderno
Texto completo de fuentesAcceso programático al texto indexado de las fuentes
Perfiles multi-cuentaCambiar de cuenta de Google sin volver a iniciar sesión
Importar cookies del navegadorReutilizar 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:

Empezar a usar NotebookLM


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