← Înapoi la blog

14,6k stele: Controlează Google NotebookLM cu Python, conectează Claude Code

  • notebooklm ai
  • notebooklm tutorial
  • notebooklm
  • notebooklm oficial

Interfața web Google NotebookLM e suficientă pentru utilizare ocazională, dar când ai nevoie de pipeline-uri de cercetare, scripturi shell sau workflow-uri cu agenți AI, lovești de un zid: majoritatea acțiunilor cer clicuri în UI, iar munca batch devine obositoare.

notebooklm-py pe GitHub ( 14,6k+ stele în mai 2026) umple acest gol — un strat Python peste NotebookLM care se conectează și la Claude Code și agenți similari.

Controlează NotebookLM cu Python

Unde se oprește web-ul NotebookLM

NotebookLM permite încărcarea de PDF-uri, URL-uri și linkuri YouTube, apoi chat și generare de podcasturi, slide-uri, quiz-uri etc. Caută notebooklm tutorial și găsești ghiduri de start — dar UI-ul oficial are limite clare:

  • Import și descărcare batch înseamnă un clic pe element
  • Quiz-urile și flashcard-urile sunt doar interactive — fără export JSON sau Markdown
  • Hărțile mentale și tabelele de date nu expun date structurate în browser
  • Fără integrare nativă cu Claude Code, Codex sau alți agenți de cod

Pentru note ocazionale, web-ul e suficient. Pentru pipeline-uri, job-uri CI sau «citește 20 de articole și generează quiz-uri», ai nevoie de API programatic.

Ce este notebooklm-py?

notebooklm-py este un SDK și CLI Python neoficial, întreținut de comunitate (licență MIT). Prin reverse engineering al RPC-ului intern Google expune aproape toate capabilitățile NotebookLM, plus funcții pe care web-ul nu le-a avut niciodată.

Avertisment: Neafiliat Google. Folosește API-uri nedocumentate care pot să crape. Cel mai potrivit pentru proiecte personale, cercetare și prototipuri.

Trei moduri de utilizare

MetodăCel mai potrivit pentru
Python APIIntegrare în aplicații, pipeline-uri async, scripturi personalizate
CLIScripturi shell, task-uri rapide, CI/CD
Integrare agențiClaude Code, Codex, OpenClaw, automatizare în limbaj natural

Ce nu oferă interfața web

CapabilitateCe primești
Descărcare batchToate artefactele unui tip dintr-o dată (MP3, MP4, PDF, PNG etc.)
Export quiz / flashcardJSON, Markdown, HTML — nu doar vizualizarea interactivă
JSON hartă mentalăDate ierarhice pentru D3, ECharts sau alte unelte
CSV tabele de dateExporturi gata de spreadsheet
PPTX slide-uriPowerPoint editabil, nu doar PDF
Revizuire slide unicModifică un slide cu prompt în limbaj natural
Salvează chat-ul ca notePersistă Q&A sau conversații întregi în notebook
Text integral surseAcces programatic la textul sursă indexat
Profile multi-contSchimbă conturi Google fără re-login
Import cookie browserRefolosește sesiunea deja autentificată

Acoperirea generării e largă: audio overview (4 formate, 50+ limbi), video (inclusiv cinematic), infografice, rapoarte, quiz-uri, flashcard-uri, hărți mentale și tabele — adesea cu control mai fin decât site-ul.

Instalare rapidă

Utilizatori CLI (inclusiv agenți):

pip install "notebooklm-py[browser]"
playwright install chromium
notebooklm login
notebooklm auth check --test --json

Doar bibliotecă (cu storage_state.json preluat, fără Chromium):

pip install notebooklm-py

Vezi installation.md al proiectului pentru detalii.

Walkthrough CLI: de la notebook la podcast descărcat

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

Folosește --prompt-file pentru prompt-uri lungi care depășesc limita shell-ului.

Exemplu 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())

Designul async se potrivește bine în workflow-uri asyncio mai mari.

Integrare Claude Code

Repo-ul include un Agent Skill. Două căi de instalare:

# Opțiunea 1: instalare CLI în Claude Code / directorul .agents
notebooklm skill install

# Opțiunea 2: ecosistem skills
npx skills add teng-lin/notebooklm-py

După setup poți spune Claude Code: «Adaugă acest PDF în NotebookLM, generează un quiz greu și exportă Markdown» — agentul rulează CLI notebooklm în loc să te pună să dai clic în browser.

Pentru developerii care construiesc workflow-uri notebooklm ai și vor toate capabilitățile de generare notebooklm oficial, e cea mai lină cale astăzi.

Preferi să nu configurezi un mediu local?

Playwright, cookie-uri și schimbări de API nu sunt pentru toată lumea. Dacă vrei să te concentrezi pe încărcare → întrebare → generare fără instalare, folosește experiența noastră NotebookLM online:

Începe să folosești NotebookLM


Rezumat

notebooklm-py transformă NotebookLM dintr-un instrument web doar cu clicuri într-un motor de cunoștințe scriptabil, pregătit pentru agenți. 14,6k stele reflectă cerere reală: cercetători care exportă quiz-uri batch, creatori care introduc generarea de podcasturi în pipeline-uri, developeri care controlează importul și descărcarea din Claude Code cu o propoziție.

Păstrează web-ul pentru utilizare ușoară zilnică; apelează la Python + CLI + agenți când ai nevoie de automatizare și export pe care browserul nu le-a oferit niciodată.

Proiect: github.com/teng-lin/notebooklm-py