← Torna al blog

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.

Controllare NotebookLM con Python

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

MetodoIdeale per
Python APIIntegrazione app, pipeline async, script personalizzati
CLIScript shell, task rapidi, CI/CD
Integrazione agentiClaude Code, Codex, OpenClaw, automazione in linguaggio naturale

Cosa la web non offre

CapacitàCosa ottieni
Download batchTutti gli artefatti di un tipo in un colpo (MP3, MP4, PDF, PNG ecc.)
Export quiz / flashcardJSON, Markdown, HTML — non solo la vista interattiva
JSON mappa mentaleDati gerarchici per D3, ECharts o altri strumenti
CSV tabelle datiExport pronti per foglio di calcolo
PPTX slidePowerPoint modificabile, non solo PDF
Revisione singola slideModificare una diapositiva con prompt in linguaggio naturale
Salvare chat in notePersistere Q&A o conversazioni intere nel notebook
Testo integrale fontiAccesso programmatico al testo indicizzato
Profili multi-accountCambiare account Google senza nuovo login
Import cookie browserRiutilizzare 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:

Inizia a usare NotebookLM


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