← 返回博客

14.6k Star!用 Python 操控 Google NotebookLM,还能直接接 Claude Code,这个开源项目做到了 Web UI 做不到的事!

  • notebooklm ai
  • notebooklm 教程
  • notebooklm 中文
  • notebooklm 官网

Google NotebookLM 的网页版用起来顺手,但一旦你认真做研究、写脚本、接 AI Agent,很快就会撞墙:很多操作只能点界面,没法自动化,更没法批量跑。

GitHub 上的 notebooklm-py(截至 2026 年 5 月已获 14.6k+ Star)就是冲着这个缺口来的——用 Python 把 NotebookLM 的能力「端」出来,还能直接挂到 Claude Code 等 Agent 里。

用 Python 操控 NotebookLM

NotebookLM 网页版卡在哪?

NotebookLM 是 Google 推出的 AI 知识工具,上传 PDF、网页、YouTube 链接后,可以基于资料问答、生成播客、幻灯片、测验等。搜 notebooklm 教程notebooklm 中文,入门内容不少,但官方 Web UI 有明显边界:

  • 批量导入、批量下载,得一篇篇点
  • Quiz、闪卡只能在线看,不好导出成 JSON / Markdown
  • 思维导图、数据表的结构化数据,网页端拿不出来
  • 和 Claude Code、Codex 这类编程 Agent 没法直接对话式联动

如果你只是偶尔整理资料,网页版够用;要做流水线、接 CI/CD、让 AI 帮你「读完 20 篇论文再出题」,就需要程序化接口。

notebooklm-py 是什么?

notebooklm-py 是社区维护的非官方 Python SDK + CLI,MIT 协议。它通过逆向 Google 内部 RPC,把 NotebookLM 几乎全部能力暴露出来,并额外提供 Web UI 没有的功能。

注意:非 Google 官方项目,依赖未公开 API,可能随 Google 更新而变动;适合个人研究、原型开发,生产环境请自行评估风险。

三种使用方式

方式适合场景
Python API嵌入应用、异步流水线、自定义脚本
CLIShell 脚本、快速任务、CI/CD
Agent 集成Claude Code、Codex、OpenClaw 等 AI 编程助手

Web UI 做不到、它能做的事

能力说明
批量下载一次拉取某类全部生成物(MP3、MP4、PDF、PNG 等)
Quiz / 闪卡导出JSON、Markdown、HTML,而不只是网页交互视图
思维导图 JSON导出层级结构,接 D3、ECharts 等可视化
数据表 CSV结构化表格下载
幻灯片 PPTX网页端通常只有 PDF,这里可下可编辑的 PPT
单页幻灯片修订用自然语言改某一页
保存对话为笔记把问答或整段聊天写入 Notebook
来源全文读取程序化获取已索引的原文
多账号配置切换 Google 账号,无需反复登录
浏览器 Cookie 导入复用已有登录态,跳过 Playwright 扫码

内容生成方面同样齐全:音频概览(4 种格式、50+ 语言)、视频(含 cinematic 风格)、信息图、报告、测验、闪卡、思维导图、数据表等,参数比网页端更细。

快速安装

CLI 用户(含 Agent)

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

纯库调用(自带 storage_state.json,无需 Chromium):

pip install notebooklm-py

更完整的安装说明见项目 installation.md

CLI 实战:从建库到下载播客

notebooklm create "AI 研究笔记"
notebooklm use <notebook_id>
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add "./paper.pdf"
notebooklm ask "核心观点有哪些?"
notebooklm generate audio "讲得生动一点" --wait
notebooklm download audio ./podcast.mp3
notebooklm generate quiz --difficulty hard
notebooklm download quiz --format markdown ./quiz.md

长 prompt 可用 --prompt-file 从文件读取,避免命令行长度限制。

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

异步设计,适合和其他 asyncio 任务串在一起跑。

接入 Claude Code

项目自带 Agent Skill,两种装法:

# 方式一:CLI 安装到 Claude Code / .agents 目录
notebooklm skill install

# 方式二:通过 skills 生态
npx skills add teng-lin/notebooklm-py

装好后,在 Claude Code 里可以直接说:「把这个 PDF 加进 NotebookLM,生成一份 hard 难度的 quiz 并导出 Markdown」——Agent 会走 notebooklm CLI,而不是让你手动开浏览器。

对习惯 notebooklm ai 工作流、又想保留 notebooklm 官网 全部生成能力的开发者,这是目前最顺的一条路。

不想配环境?直接在浏览器里用

本地装 Playwright、管 Cookie、跟 API 变更搏斗,并不是每个人都愿意。如果你更想专注「上传资料 → 提问 → 生成内容」,可以直接在我们的在线站点体验 NotebookLM 核心能力,免安装、多语言界面:

开始使用 NotebookLM


总结

notebooklm-py 把 NotebookLM 从「只能手点的网页工具」变成了「可脚本化、可接 Agent 的知识引擎」。14.6k Star 说明需求是真实的:研究者要批量导 quiz,创作者要 pipeline 里自动生成播客,开发者要在 Claude Code 里一句话完成导入和下载。

Web UI 负责日常轻度使用;当你需要自动化和 Web 端没有的数据导出时,Python + CLI + Agent 才是完整拼图。

项目地址:github.com/teng-lin/notebooklm-py