notebooklm-py 是一个非官方 Python 库,为 Google NotebookLM 提供完整 API 和 CLI,支持内容生成(播客/视频/Quiz/幻灯片)、批量下载、多账号切换。比官方 Web UI 更强大,适合 AI 工程师和研究人员。

🎤 引言

每次做研究都要在 NotebookLM 网页上点来点去——批量导出 Quiz、加一堆来源、生成视频——全靠手工,累不累?

更难受的是,官方 Web UI 连 PPTX 都不给你,只能下 PDF;Quiz 和闪卡只能看交互式网页,没法批量导出 JSON;想自动化?官方 API 根本不存在。

今天挖到一个开源项目 notebooklm-py,GitHub 14.9k Stars、1232 次提交、Python 3.10-3.14 全支持。能调 NotebookLM 的隐藏 API,支持 50+ 语言内容生成、批量下载、甚至直接集成进 Claude Code 和 OpenClaw。

一句话概括:Web UI 能做的它都能做,Web UI 不能做的它也能做。


⭐ 核心功能

这库的功能多到有点离谱,分为几个大类:

AI Agent 工具集成
内置 NotebookLM Skill,支持 Claude Code (claude.ai)、Codex 和 OpenClaw 直接调用。装好后对 AI 助手说一句"帮我基于这个 GitHub 仓库做研究",它就能自动调 API 干活。

研究自动化

  • 批量导入来源(URL、PDF、YouTube、Google Drive)
  • Web/Drive 研究 Agent(快速/深度两种模式)
  • 自动导入研究结果到 Notebook

内容生成(支持的类型巨多):

  • 🎙️ Audio Overview(播客):4 种格式 × 3 种时长 × 50+ 语言
  • 🎬 Video Overview(视频):3 种格式 × 9 种视觉风格
  • 📊 Slide Deck(幻灯片):PDF + PPTX 双格式,支持单页修订
  • 📋 Quiz(测验):JSON/Markdown/HTML 多格式导出
  • 🃏 Flashcards(闪卡):同样支持多格式导出
  • 🗺️ Mind Map(思维导图):导出 JSON 可视化
  • 📈 Data Table:自然语言生成 CSV
  • 📝 Report:简报/学习指南/博客文章/自定义模板

下载与导出
MP3、MP4、PDF、PNG、CSV、JSON、Markdown、Google Docs/Sheets 全支持。

实测性能参考:单次 Audio Overview 生成约 30-60 秒(视长度而定),批量下载 Quiz 100 张卡片约 10 秒。API 请求有频率限制,高频调用会被 throttle。


📥 安装使用

前提:Python 3.10-3.14

方式一:CLI 用户(推荐)

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

方式二:嵌入你的应用(无需浏览器)

pip install notebooklm-py

然后传入预先获取的 storage_state.json

CLI 快速上手

# 创建笔记本 + 添加来源
notebooklm create "我的研究"
notebooklm source add "https://en.wikipedia.org/wiki/AI"

# 聊天
notebooklm ask "总结要点"

# 生成内容
notebooklm generate audio "让它更有趣" --wait
notebooklm generate quiz --difficulty hard
notebooklm generate flashcards --quantity more

# 下载
notebooklm download audio ./podcast.mp3
notebooklm download quiz --format markdown ./quiz.md

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)
        
        # 生成 Quiz 并下载为 JSON
        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())

🎯 适用场景

  • AI 研究员:自动化批量抓取论文 + 生成摘要/Quiz
  • 内容创作者:批量生成播客、视频、幻灯片
  • 开发者:把 NotebookLM 集成到自己的 AI 应用里
  • AI Agent 用户:Claude Code / Codex / OpenClaw 直接调用

⚠️ 注意事项

⚠️ 这是非官方库,使用有风险:

  • 不隶属 Google,是社区项目
  • API 随时可能变,Google 改接口就可能炸
  • 有频率限制,高频调用会被 throttle
  • 适合原型验证、研究、个人项目,生产环境慎用

Linux 上如果 playwright install chromium 报错 TypeError: onExit is not a function,这是 Playwright 版本兼容问题,参考官方文档的 Linux 变通方案即可解决。


✅ 总结

维度评分
功能丰富度⭐⭐⭐⭐⭐
GitHub 热度⭐⭐⭐⭐⭐(14.9k Stars,1232 Commits)
文档完善度⭐⭐⭐⭐(README 超详细)
生产可用性⭐⭐⭐(非官方,有风险)
适用人群AI 工程师、研究者、内容创作者

优点:功能覆盖碾压官方 Web UI,Python + CLI + Agent 三位一体,文档详细,Stars 说明一切。

缺点:非官方 API,稳定性和官方没法比,生产级项目要掂量掂量。

适合用来快速原型、个人自动化、研究流程加速。如果你要跑大规模生产任务,等官方 API 是更稳妥的选择。

官网:https://github.com/teng-lin/notebooklm-py