14,6k stars: Bestuur Google NotebookLM met Python, koppel Claude Code
- notebooklm ai
- notebooklm tutorial
- notebooklm
- notebooklm officieel
De webapp van Google NotebookLM volstaat voor incidenteel gebruik, maar zodra je research-pipelines, shellscripts of AI-agent-workflows nodig hebt, loop je tegen muren aan: de meeste acties vereisen klikken in de UI, en batchwerk wordt vermoeiend.
notebooklm-py op GitHub ( 14,6k+ stars per mei 2026) vult die leemte — een Python-laag boven NotebookLM die ook aansluit op Claude Code en vergelijkbare agents.

Waar de NotebookLM-web-UI stopt
NotebookLM laat je PDF’s, URL’s en YouTube-links uploaden, chatten en podcasts, slides, quizzen en meer genereren. Zoek op notebooklm tutorial en je vindt startersgidsen — maar de officiële UI heeft duidelijke grenzen:
- Batch-import en -download betekent één klik per item
- Quizzen en flashcards zijn alleen interactief — geen JSON- of Markdown-export
- Mindmaps en datatabellen geven geen gestructureerde data in de browser
- Geen native koppeling met Claude Code, Codex of andere coding-agents
Voor af en toe notities volstaat de webapp. Voor pipelines, CI-jobs of «lees 20 papers en genereer quizzen» heb je een programmatische API nodig.
Wat is notebooklm-py?
notebooklm-py is een onofficiële Python SDK en CLI, onderhouden door de community (MIT-licentie). Via reverse engineering van Google’s interne RPC worden vrijwel alle NotebookLM-mogelijkheden blootgelegd, plus functies die de web-UI nooit kreeg.
Disclaimer: Niet gelieerd aan Google. Gebruikt ongedocumenteerde API’s die kunnen breken. Het bestst voor persoonlijke projecten, onderzoek en prototypes.
Drie manieren om het te gebruiken
| Methode | Het best voor |
|---|---|
| Python API | App-integratie, async pipelines, custom scripts |
| CLI | Shellscripts, snelle taken, CI/CD |
| Agent-integratie | Claude Code, Codex, OpenClaw, natural-language automatisering |
Wat de web-UI niet biedt
| Mogelijkheid | Wat je krijgt |
|---|---|
| Batch-download | Alle artefacten van een type in één keer (MP3, MP4, PDF, PNG, enz.) |
| Quiz-/flashcard-export | JSON, Markdown, HTML — niet alleen de interactieve weergave |
| Mindmap-JSON | Hiërarchische data voor D3, ECharts of andere tools |
| Datatabel-CSV | Spreadsheetklare exports |
| Slide-PPTX | Bewerkbare PowerPoint, niet alleen PDF |
| Enkele slide revisie | Eén slide wijzigen met een natural-language prompt |
| Chat opslaan als notities | Q&A of volledige gesprekken in het notebook bewaren |
| Bron-volledige tekst | Programmatische toegang tot geïndexeerde brontekst |
| Multi-accountprofielen | Google-accounts wisselen zonder opnieuw in te loggen |
| Browsercookie-import | Bestaande ingelogde sessie hergebruiken |
Generatiedekking is breed: audio-overviews (4 formaten, 50+ talen), video (inclusief cinematic), infographics, rapporten, quizzen, flashcards, mindmaps en datatabellen — vaak met fijnere controle dan de website.
Snelle installatie
CLI-gebruikers (incl. agents):
pip install "notebooklm-py[browser]"
playwright install chromium
notebooklm login
notebooklm auth check --test --json
Alleen bibliotheek (met vooraf verkregen storage_state.json, zonder Chromium):
pip install notebooklm-py
Zie installation.md van het project voor details.
CLI-walkthrough: van notebook naar podcast-download
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
Gebruik --prompt-file voor lange prompts die shell-lengtelimieten overschrijden.
Python API-voorbeeld
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())
Het async-ontwerp past goed in grotere asyncio-workflows.
Claude Code-integratie
De repo levert een Agent Skill. Twee installatiepaden:
# Optie 1: CLI-installatie naar Claude Code / .agents-map
notebooklm skill install
# Optie 2: skills-ecosysteem
npx skills add teng-lin/notebooklm-py
Na setup kun je Claude Code vragen: «Voeg deze PDF toe aan NotebookLM, genereer een moeilijke quiz en exporteer Markdown» — de agent draait de notebooklm-CLI in plaats van je door de browser te laten klikken.
Voor developers die notebooklm ai-workflows bouwen en volledige notebooklm officieel-generatiefuncties willen, is dit vandaag de soepelste route.
Liever geen lokale omgeving opzetten?
Playwright, cookies en API-wijzigingen zijn niet voor iedereen. Als je wilt focussen op uploaden → vragen → genereren zonder te installeren, gebruik onze online NotebookLM-ervaring:
Samenvatting
notebooklm-py maakt van NotebookLM een scriptbaar, agent-klaar kennismotor in plaats van een puur klikbare webtool. 14,6k stars weerspiegelen echte vraag: onderzoekers die quizzen batch exporteren, makers die podcastgeneratie in pipelines stoppen, developers die import en download vanuit Claude Code in één zin sturen.
Houd de web-UI voor licht dagelijks gebruik; pak Python + CLI + agents wanneer je automatisering en exports nodig hebt die de browser nooit bood.
Project: github.com/teng-lin/notebooklm-py