手把手教你使用 Google NotebookLM 的 Python API
从安装到实战,每一步都有详细解释
NotebookLM 是 Google 推出的一款 AI 笔记工具,你可以上传文档(PDF、网页、视频等),然后让 AI 帮你:
一次性导入几十个网页或PDF,不用一个个手动添加
设置好脚本,自动生成播客、报告等内容
把 NotebookLM 集成到你自己的应用程序中
| 功能类别 | 具体能力 | 使用场景 |
|---|---|---|
| 📁 笔记本管理 | 创建、列出、重命名、删除、分享 | 整理不同项目的资料 |
| 📎 添加来源 | 网页URL、YouTube视频、PDF文件、Google Drive、纯文本 | 导入各种格式的学习资料 |
| 💬 AI对话 | 提问、查看对话历史、自定义AI角色 | 向AI询问文档内容 |
| 🎙️ 内容生成 | 播客音频、视频、幻灯片、测验、闪卡、报告、思维导图 | 把资料转化成各种形式 |
| 📥 下载 | 音频、视频、幻灯片、报告等所有生成内容 | 保存到本地使用 |
开始之前,请确保你满足以下条件:
你需要一个 Google 账号来使用 NotebookLM。如果没有,先去 accounts.google.com 注册一个。
这个工具需要 Python 3.10+。检查你是否已安装:
python --version
# 应该显示类似:Python 3.10.x 或更高
如果没有安装 Python:
brew install pythonsudo apt install python3 python3-pipWin + R,输入 cmd 回车;或搜索 "PowerShell"Cmd + 空格,搜索 "终端" 或 "Terminal"Ctrl + Alt + T安装非常简单,只需要两条命令:
打开命令行,输入以下命令:
pip install "notebooklm-py[browser]"
pip install
Python 的包安装命令,用来安装第三方库
[browser]
额外安装浏览器支持,用于自动登录 Google 账号(首次必需)
pip 找不到,试试用 pip3 install "notebooklm-py[browser]"
playwright install chromium
这会下载一个用于自动化的 Chromium 浏览器,大约 100-200MB。
notebooklm --help
# 如果显示帮助信息,说明安装成功!
首次使用需要登录你的 Google 账号:
notebooklm login
执行命令后,会自动打开一个浏览器窗口:
当命令行显示类似 "Login successful" 的信息时,说明认证完成。
~/.notebooklm/ 目录中。
学会以下命令,你就能完成大部分操作了!
notebooklm create "我的AI学习笔记"
# 输出示例:
# Created notebook: 我的AI学习笔记
# ID: abc123xyz789
notebooklm list
# 会显示所有笔记本的名称和 ID
# 用笔记本的 ID
notebooklm use abc123xyz789
# 之后的命令都会在这个笔记本上操作
notebooklm source add "https://zh.wikipedia.org/wiki/人工智能"
# 工具会自动抓取网页内容并添加到笔记本
notebooklm source add "./我的论文.pdf"
# 支持 PDF、TXT、MD、DOCX 格式
notebooklm source add "https://www.youtube.com/watch?v=xxxxx"
# 会自动提取视频字幕作为内容
notebooklm source list
notebooklm ask "这些文档的主要观点是什么?"
# AI 会基于你添加的所有来源回答问题
notebooklm ask "用简单的语言解释一下机器学习"
notebooklm ask "列出文中提到的 5 个关键概念"
notebooklm ask "这篇论文和那个视频有什么共同点?"
# 开始生成(需要等待几分钟)
notebooklm generate audio --wait
# 下载生成的音频文件
notebooklm download audio ./我的播客.mp3
--wait 参数表示等待生成完成。播客通常需要 2-5 分钟生成。
# 生成测验题
notebooklm generate quiz --wait
# 生成闪卡(学习卡片)
notebooklm generate flashcards --wait
# 生成学习指南
notebooklm generate study-guide --wait
# 生成思维导图
notebooklm generate mindmap --wait
# 下载音频
notebooklm download audio ./podcast.mp3
# 下载测验(Markdown格式)
notebooklm download quiz ./quiz.md
# 下载闪卡
notebooklm download flashcards ./flashcards.md
如果你想在 Python 程序中使用,可以这样写:
import asyncio
from notebooklm import NotebookLMClient
async def main():
# 创建客户端(自动使用保存的登录信息)
async with await NotebookLMClient.from_storage() as client:
# 1. 查看所有笔记本
notebooks = await client.notebooks.list()
print("你的笔记本:")
for nb in notebooks:
print(f" - {nb.title} (ID: {nb.id})")
# 2. 创建新笔记本
new_nb = await client.notebooks.create("Python测试笔记本")
print(f"创建成功!ID: {new_nb.id}")
# 3. 添加网页来源
await client.sources.add_url(
new_nb.id,
"https://zh.wikipedia.org/wiki/Python"
)
print("来源添加成功!")
# 4. 向AI提问
result = await client.chat.ask(new_nb.id, "Python是什么?")
print(f"AI回答:{result.answer}")
# 运行程序
asyncio.run(main())
async/await 异步语法。如果你不熟悉,可以先学习一下 Python 异步编程基础。
import asyncio
from notebooklm import NotebookLMClient
async def generate_podcast(notebook_id: str):
async with await NotebookLMClient.from_storage() as client:
# 开始生成播客
print("开始生成播客...")
status = await client.artifacts.generate_audio(notebook_id)
# 等待生成完成
print("生成中,请稍候...")
await client.artifacts.wait_for_completion(
notebook_id,
status.task_id
)
print("播客生成完成!")
# 使用方法:把 "你的笔记本ID" 替换成实际ID
asyncio.run(generate_podcast("你的笔记本ID"))
以下是一些真实的使用场景:
假设你想快速了解"量子计算":
# 1. 创建笔记本
notebooklm create "量子计算学习"
notebooklm use <笔记本ID>
# 2. 添加多个学习资源
notebooklm source add "https://zh.wikipedia.org/wiki/量子计算机"
notebooklm source add "https://www.youtube.com/watch?v=量子计算视频"
# 3. 让AI帮你总结
notebooklm ask "用小学生能听懂的话解释量子计算"
# 4. 生成播客,通勤路上听
notebooklm generate audio --wait
notebooklm download audio ./量子计算入门.mp3
# 5. 生成测验检验学习效果
notebooklm generate quiz --wait
notebooklm download quiz ./量子计算测验.md
分析一批学术论文:
# 1. 创建笔记本
notebooklm create "大语言模型研究"
notebooklm use <笔记本ID>
# 2. 添加多篇论文
notebooklm source add "./论文1.pdf"
notebooklm source add "./论文2.pdf"
notebooklm source add "./论文3.pdf"
# 3. 进行分析
notebooklm ask "这三篇论文的共同研究方法是什么?"
notebooklm ask "它们的主要结论有何异同?"
notebooklm ask "基于这些论文,未来研究方向可能是什么?"
用 Python 脚本批量处理:
import asyncio
from notebooklm import NotebookLMClient
# 要处理的主题列表
topics = [
("人工智能", "https://zh.wikipedia.org/wiki/人工智能"),
("机器学习", "https://zh.wikipedia.org/wiki/机器学习"),
("深度学习", "https://zh.wikipedia.org/wiki/深度学习"),
]
async def batch_create_podcasts():
async with await NotebookLMClient.from_storage() as client:
for topic, url in topics:
print(f"处理:{topic}")
# 创建笔记本
nb = await client.notebooks.create(f"{topic}播客")
# 添加来源
await client.sources.add_url(nb.id, url)
# 生成播客
status = await client.artifacts.generate_audio(nb.id)
await client.artifacts.wait_for_completion(nb.id, status.task_id)
print(f"✓ {topic} 完成!")
asyncio.run(batch_create_podcasts())
这说明 Python 没有正确添加到系统路径。解决方法:
python -m pip install ...可能是 Playwright 没有正确安装。尝试:
# 重新安装浏览器
playwright install chromium --with-deps
如果还是不行,检查是否有防火墙或杀毒软件阻止。
登录凭证可能已过期,重新登录即可:
notebooklm login
可能的原因:
./文件.pdf)或绝对路径播客生成需要时间,可能需要 5-10 分钟。如果失败:
不会。
~/.notebooklm/)Windows 用户请注意:
.\文件.pdf完全支持!