← Voltar ao blog

14,6k Stars: Controle o Google NotebookLM com Python e conecte ao Claude Code

  • notebooklm ai
  • notebooklm tutorial
  • notebooklm
  • notebooklm oficial

A interface web do Google NotebookLM serve para uso casual, mas quando você precisa de pipelines de pesquisa, scripts ou fluxos com agentes de IA, bate num muro: quase tudo exige cliques na UI, e trabalho em lote vira dor de cabeça.

O notebooklm-py no GitHub ( 14,6k+ stars em maio de 2026) preenche essa lacuna — uma camada Python sobre o NotebookLM que também se conecta ao Claude Code e agentes similares.

Controlar NotebookLM com Python

Onde a web do NotebookLM para

O NotebookLM permite enviar PDFs, URLs e links do YouTube, conversar e gerar podcasts, slides, quizzes e mais. Busque notebooklm tutorial e achará guias — mas a UI oficial tem limites claros:

  • Importação e download em lote significa um clique por item
  • Quizzes e flashcards só interativos — sem exportar JSON ou Markdown
  • Mapas mentais e tabelas de dados não expõem dados estruturados no navegador
  • Sem integração nativa com Claude Code, Codex ou outros agentes de código

Para anotações ocasionais, a web basta. Para pipelines, jobs de CI ou «ler 20 papers e gerar quizzes», você precisa de uma API programática.

O que é notebooklm-py?

notebooklm-py é um SDK e CLI Python não oficial, mantido pela comunidade (licença MIT). Por engenharia reversa do RPC interno do Google, expõe quase todas as capacidades do NotebookLM, além de recursos que a web nunca entregou.

Aviso: Não é afiliado ao Google. Usa APIs não documentadas que podem quebrar. Ideal para projetos pessoais, pesquisa e protótipos.

Três formas de usar

MétodoMelhor para
Python APIIntegração em apps, pipelines assíncronos, scripts personalizados
CLIScripts shell, tarefas rápidas, CI/CD
Integração com agentesClaude Code, Codex, OpenClaw, automação em linguagem natural

O que a web não oferece

CapacidadeO que você obtém
Download em loteTodos os artefatos de um tipo de uma vez (MP3, MP4, PDF, PNG etc.)
Exportar quiz / flashcardsJSON, Markdown, HTML — não só a visualização interativa
JSON de mapa mentalDados hierárquicos para D3, ECharts ou outras ferramentas
CSV de tabelas de dadosExportações prontas para planilha
PPTX de slidesPowerPoint editável, não só PDF
Revisão de slide únicoAlterar um slide com prompt em linguagem natural
Salvar chat em notasPersistir perguntas e respostas ou conversas completas no caderno
Texto integral das fontesAcesso programático ao texto indexado das fontes
Perfis multi-contaTrocar contas Google sem novo login
Importar cookies do navegadorReutilizar sessão já autenticada

A cobertura de geração é ampla: resumos em áudio (4 formatos, 50+ idiomas), vídeo (incluindo estilo cinematic), infográficos, relatórios, quizzes, flashcards, mapas mentais e tabelas — muitas vezes com controles mais finos que no site.

Instalação rápida

Usuários de CLI (incl. agentes):

pip install "notebooklm-py[browser]"
playwright install chromium
notebooklm login
notebooklm auth check --test --json

Somente biblioteca (com storage_state.json prévio, sem Chromium):

pip install notebooklm-py

Veja installation.md do projeto para detalhes completos.

Tutorial CLI: do caderno ao download do 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

Use --prompt-file para prompts longos que excedam o limite do shell.

Exemplo 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())

O design assíncrono encaixa bem em workflows asyncio maiores.

Integração com Claude Code

O repositório inclui um Agent Skill. Duas formas de instalar:

# Opção 1: instalar via CLI no Claude Code / diretório .agents
notebooklm skill install

# Opção 2: ecossistema skills
npx skills add teng-lin/notebooklm-py

Depois da instalação, você pode dizer ao Claude Code: «Adicione este PDF ao NotebookLM, gere um quiz difícil e exporte Markdown» — o agente executa a CLI notebooklm em vez de fazer você clicar no navegador.

Para desenvolvedores que montam fluxos notebooklm ai e querem todas as capacidades de geração do notebooklm oficial, este é hoje o caminho mais direto.

Prefere não configurar ambiente local?

Playwright, cookies e mudanças de API não são para todos. Se quiser focar em enviar → perguntar → gerar sem instalar nada, use nossa experiência NotebookLM online:

Começar a usar NotebookLM


Resumo

notebooklm-py transforma o NotebookLM de ferramenta web só com cliques em motor de conhecimento scriptável e pronto para agentes. 14,6k stars refletem demanda real: pesquisadores exportando quizzes em lote, criadores encadeando geração de podcasts em pipelines, desenvolvedores importando e baixando do Claude Code com uma frase.

Use a web para o dia a dia leve; recorra a Python + CLI + agentes quando precisar de automação e exportações que o navegador nunca ofereceu.

Projeto: github.com/teng-lin/notebooklm-py