← Kembali ke blog

14.6k Star: Kawal Google NotebookLM dengan Python, sambung Claude Code

  • notebooklm ai
  • notebooklm tutorial
  • notebooklm
  • notebooklm rasmi

Antaramuka web Google NotebookLM sesuai untuk penggunaan santai, tetapi apabila anda perlukan pipeline penyelidikan, skrip shell atau aliran kerja ejen AI, anda terhenti: kebanyakan tindakan memerlukan klik UI, dan kerja batch menjadi melelahkan.

notebooklm-py di GitHub ( 14.6k+ star setakat Mei 2026) mengisi jurang ini — lapisan Python ke atas NotebookLM yang juga disambung ke Claude Code dan ejen serupa.

Kawal NotebookLM dengan Python

Di mana web NotebookLM terhenti

NotebookLM membolehkan muat naik PDF, URL dan pautan YouTube, kemudian sembang dan jana podcast, slaid, kuiz dan lain-lain. Cari notebooklm tutorial dan anda akan jumpa panduan permulaan — tetapi UI rasmi ada had jelas:

  • Import dan muat turun batch bermaksud satu klik setiap item
  • Kuiz dan kad imbas hanya interaktif — tiada eksport JSON atau Markdown
  • Peta minda dan jadual data tidak dedahkan data berstruktur dalam pelayar
  • Tiada integrasi native dengan Claude Code, Codex atau ejen pengekodan lain

Untuk nota sekali-sekala, web mencukupi. Untuk pipeline, job CI atau «baca 20 kertas dan jana kuiz», anda perlukan API programmatic.

Apakah notebooklm-py?

notebooklm-py ialah SDK dan CLI Python tidak rasmi yang diselenggara komuniti (lesen MIT). Melalui reverse engineering RPC dalaman Google, hampir semua keupayaan NotebookLM tersedia, ditambah ciri yang web tidak pernah keluarkan.

Amaran: Tidak berafiliasi dengan Google. Menggunakan API tidak didokumenkan yang mungkin rosak. Sesuai untuk projek peribadi, penyelidikan dan prototaip.

Tiga cara guna

KaedahPaling sesuai untuk
Python APIIntegrasi app, pipeline async, skrip tersuai
CLISkrip shell, tugas pantas, CI/CD
Integrasi ejenClaude Code, Codex, OpenClaw, automasi bahasa semula jadi

Apa yang web UI tidak tawarkan

KeupayaanApa yang anda dapat
Muat turun batchSemua artifak satu jenis sekaligus (MP3, MP4, PDF, PNG dll.)
Eksport kuiz / kad imbasJSON, Markdown, HTML — bukan hanya paparan interaktif
JSON peta mindaData hierarki untuk D3, ECharts atau alat lain
CSV jadual dataEksport sedia spreadsheet
PPTX slaidPowerPoint boleh edit, bukan PDF sahaja
Semakan slaid tunggalUbah satu slaid dengan prompt bahasa semula jadi
Simpan sembang ke notaKekalkan Q&A atau perbualan penuh dalam notebook
Fulltext sumberAkses programmatic ke teks sumber terindeks
Profil multi-akaunTukar akaun Google tanpa log masuk semula
Import cookie pelayarGuna semula sesi log masuk sedia ada

Liputan penjanaan luas: audio overview (4 format, 50+ bahasa), video (termasuk cinematic), infografik, laporan, kuiz, kad imbas, peta minda dan jadual — selalunya dengan kawalan lebih halus daripada laman web.

Pemasangan pantas

Pengguna CLI (termasuk ejen):

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

Library sahaja (dengan storage_state.json sedia ada, tanpa Chromium):

pip install notebooklm-py

Lihat installation.md projek untuk butiran penuh.

Walkthrough CLI: dari notebook ke muat turun podcast

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

Guna --prompt-file untuk prompt panjang yang melebihi had panjang shell.

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

Reka bentuk async sesuai dalam workflow asyncio yang lebih besar.

Integrasi Claude Code

Repo menyertakan Agent Skill. Dua laluan pemasangan:

# Pilihan 1: pasang CLI ke Claude Code / direktori .agents
notebooklm skill install

# Pilihan 2: ekosistem skills
npx skills add teng-lin/notebooklm-py

Selepas setup, anda boleh minta Claude Code: «Tambah PDF ini ke NotebookLM, jana kuiz sukar dan eksport Markdown» — ejen menjalankan CLI notebooklm, bukan suruh anda klik pelayar.

Untuk pembangun yang bina aliran notebooklm ai dan mahukan semua keupayaan penjanaan notebooklm rasmi, ini laluan paling lancar hari ini.

Tidak mahu sediakan persekitaran tempatan?

Playwright, cookie dan perubahan API bukan untuk semua orang. Jika anda mahu fokus muat naik → tanya → jana tanpa pasang apa-apa, guna pengalaman NotebookLM dalam talian kami:

Mula Gunakan NotebookLM


Ringkasan

notebooklm-py menukar NotebookLM daripada alat web klik-sahaja kepada enjin pengetahuan boleh skrip dan sedia ejen. 14.6k star mencerminkan permintaan sebenar: penyelidik mengeksport kuiz batch, pencipta memasukkan penjanaan podcast ke pipeline, pembangun mengawal import dan muat turun dari Claude Code dalam satu ayat.

Kekalkan web untuk penggunaan harian ringan; guna Python + CLI + ejen apabila perlukan automasi dan eksport yang pelayar tidak pernah tawarkan.

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