← Terug naar blog

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.

NotebookLM besturen met Python

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

MethodeHet best voor
Python APIApp-integratie, async pipelines, custom scripts
CLIShellscripts, snelle taken, CI/CD
Agent-integratieClaude Code, Codex, OpenClaw, natural-language automatisering

Wat de web-UI niet biedt

MogelijkheidWat je krijgt
Batch-downloadAlle artefacten van een type in één keer (MP3, MP4, PDF, PNG, enz.)
Quiz-/flashcard-exportJSON, Markdown, HTML — niet alleen de interactieve weergave
Mindmap-JSONHiërarchische data voor D3, ECharts of andere tools
Datatabel-CSVSpreadsheetklare exports
Slide-PPTXBewerkbare PowerPoint, niet alleen PDF
Enkele slide revisieEén slide wijzigen met een natural-language prompt
Chat opslaan als notitiesQ&A of volledige gesprekken in het notebook bewaren
Bron-volledige tekstProgrammatische toegang tot geïndexeerde brontekst
Multi-accountprofielenGoogle-accounts wisselen zonder opnieuw in te loggen
Browsercookie-importBestaande 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:

Begin met NotebookLM


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