14,6k Star: Controlla Google NotebookLM con Python e collega Claude Code
- notebooklm ai
- notebooklm tutorial
- notebooklm
- notebooklm ufficiale
L’interfaccia web di Google NotebookLM va bene per un uso occasionale, ma appena servono pipeline di ricerca, script o workflow con agenti IA si incontra un muro: quasi tutto passa dai clic nell’UI e il lavoro in batch diventa faticoso.
notebooklm-py su GitHub ( 14,6k+ star a maggio 2026) colma questo vuoto — uno strato Python su NotebookLM collegabile anche a Claude Code e agenti simili.

Dove si ferma la web di NotebookLM
NotebookLM consente di caricare PDF, URL e link YouTube, poi chattare e generare podcast, slide, quiz e altro. Cercando notebooklm tutorial troverete guide introduttive — ma l’UI ufficiale ha limiti netti:
- Import ed export batch significano un clic alla volta
- Quiz e flashcard solo interattivi — niente export JSON o Markdown
- Mappe mentali e tabelle dati non espongono dati strutturati nel browser
- Nessun aggancio nativo a Claude Code, Codex o altri agenti di coding
Per appunti occasionali, la web basta. Per pipeline, job CI o «leggi 20 paper e genera quiz», serve un’API programmatica.
Cos’è notebooklm-py?
notebooklm-py è un SDK e CLI Python non ufficiale, mantenuto dalla community (licenza MIT). Con reverse engineering del RPC interno Google espone quasi tutte le capacità di NotebookLM, più funzioni mai arrivate sul web.
Avvertenza: Non affiliato a Google. Usa API non documentate che possono rompersi. Ideale per progetti personali, ricerca e prototipi.
Tre modi d’uso
| Metodo | Ideale per |
|---|---|
| Python API | Integrazione app, pipeline async, script personalizzati |
| CLI | Script shell, task rapidi, CI/CD |
| Integrazione agenti | Claude Code, Codex, OpenClaw, automazione in linguaggio naturale |
Cosa la web non offre
| Capacità | Cosa ottieni |
|---|---|
| Download batch | Tutti gli artefatti di un tipo in un colpo (MP3, MP4, PDF, PNG ecc.) |
| Export quiz / flashcard | JSON, Markdown, HTML — non solo la vista interattiva |
| JSON mappa mentale | Dati gerarchici per D3, ECharts o altri strumenti |
| CSV tabelle dati | Export pronti per foglio di calcolo |
| PPTX slide | PowerPoint modificabile, non solo PDF |
| Revisione singola slide | Modificare una diapositiva con prompt in linguaggio naturale |
| Salvare chat in note | Persistere Q&A o conversazioni intere nel notebook |
| Testo integrale fonti | Accesso programmatico al testo indicizzato |
| Profili multi-account | Cambiare account Google senza nuovo login |
| Import cookie browser | Riutilizzare sessione già autenticata |
La copertura generativa è ampia: audio overview (4 formati, 50+ lingue), video (incluso stile cinematic), infografiche, report, quiz, flashcard, mappe mentali e tabelle — spesso con controlli più fini del sito.
Installazione rapida
Utenti CLI (agenti inclusi):
pip install "notebooklm-py[browser]"
playwright install chromium
notebooklm login
notebooklm auth check --test --json
Solo libreria (con storage_state.json preacquisito, senza Chromium):
pip install notebooklm-py
Dettagli completi in installation.md del progetto.
Walkthrough CLI: dal notebook al podcast scaricato
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 per prompt lunghi che superano i limiti della shell.
Esempio 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())
Il design async si integra bene in workflow asyncio più ampi.
Integrazione Claude Code
Il repo include un Agent Skill. Due percorsi di installazione:
# Opzione 1: installazione CLI verso Claude Code / cartella .agents
notebooklm skill install
# Opzione 2: ecosistema skills
npx skills add teng-lin/notebooklm-py
Dopo il setup puoi dire a Claude Code: «Aggiungi questo PDF a NotebookLM, genera un quiz difficile ed esporta Markdown» — l’agente esegue la CLI notebooklm invece di farti cliccare nel browser.
Per sviluppatori che costruiscono workflow notebooklm ai mantenendo tutte le capacità di generazione notebooklm ufficiale, è oggi la strada più lineare.
Preferisci evitare un ambiente locale?
Playwright, cookie e cambi API non sono per tutti. Se vuoi concentrarti su carica → chiedi → genera senza installare nulla, usa la nostra esperienza NotebookLM online:
Riepilogo
notebooklm-py trasforma NotebookLM da strumento web a clic in motore di conoscenza scriptabile e pronto per agenti. 14,6k star riflettono domanda reale: ricercatori che esportano quiz in batch, creator che inseriscono generazione podcast in pipeline, sviluppatori che guidano import e download da Claude Code con una frase.
Tieni la web per l’uso leggero quotidiano; passa a Python + CLI + agenti quando servono automazione ed export che il browser non ha mai offerto.
Progetto: github.com/teng-lin/notebooklm-py