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.

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étodo | Melhor para |
|---|---|
| Python API | Integração em apps, pipelines assíncronos, scripts personalizados |
| CLI | Scripts shell, tarefas rápidas, CI/CD |
| Integração com agentes | Claude Code, Codex, OpenClaw, automação em linguagem natural |
O que a web não oferece
| Capacidade | O que você obtém |
|---|---|
| Download em lote | Todos os artefatos de um tipo de uma vez (MP3, MP4, PDF, PNG etc.) |
| Exportar quiz / flashcards | JSON, Markdown, HTML — não só a visualização interativa |
| JSON de mapa mental | Dados hierárquicos para D3, ECharts ou outras ferramentas |
| CSV de tabelas de dados | Exportações prontas para planilha |
| PPTX de slides | PowerPoint editável, não só PDF |
| Revisão de slide único | Alterar um slide com prompt em linguagem natural |
| Salvar chat em notas | Persistir perguntas e respostas ou conversas completas no caderno |
| Texto integral das fontes | Acesso programático ao texto indexado das fontes |
| Perfis multi-conta | Trocar contas Google sem novo login |
| Importar cookies do navegador | Reutilizar 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:
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