通过 notebooklm-mcp-cli 创建和监控 NotebookLM Studio 内容——包括音频概览、视频概览、信息图表和幻灯片。适用于用户想要...
注释本LM内容创建. 创建注释本LM工作室内容(Audio Overview, Video Overview, Infography, Slips),并使用背景是一项面向实际任务的技能,主要用于Requires:.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
创建 NotebookLM Studio 内容(音频概览、视频概览、信息图、幻灯片),并通过后台轮询循环监控其生成直至完成。
前提要求:
notebooklm-mcp-cli:执行 uv tool install notebooklm-mcp-clinlm login(该步骤已在服务器端完成)| 类型 | 命令 | 格式 | 时长/长度 |
|---|---|---|---|
| 音频概览 | nlm audio create |
deep_dive、brief、critique、debate | short、default、long |
| 视频概览 | nlm studio create --type video |
deep_dive、brief、critique、debate | short、default、long |
| 信息图 | nlm studio create --type infographic |
(默认) | — |
| 幻灯片 | nlm studio create --type slides |
deep_dive | — |
列出全部笔记本:
nlm notebook list
解析 JSON 输出中的 id 和 title 字段,与用户输入的关键词进行不区分大小写的子串匹配。若存在多个匹配项,则按编号列出供用户选择。
若无匹配笔记本:
nlm notebook create "" nlm source add --url --wait 在创建新内容前,先检查该笔记本是否已生成过对应产物:
nlm studio status
若存在 status: completed 的产物,向用户展示并提问:
“该笔记本已存在已完成的内容。是否下载现有的 [type],还是生成新内容?”
所有参数在同一轮交互中一并询问,使用用户当前会话语言表述。
正在从“[笔记本名称]”创建 [音频/视频/信息图/幻灯片] 概览 请确认: ① 内容类型:[音频概览 / 视频概览 / 信息图 / 幻灯片] ② 格式:[deep_dive / brief](默认:deep_dive) ③ 长度:[short / default / long](默认:default)——信息图与幻灯片不支持此选项 ④ 语言:[BCP-47 语言代码,例如 en、zh-CN](默认:笔记本自动检测的语言,或 en) ⑤ 输出路径:[路径](默认:~/ObsidianVault/Default/NotebookLM//) 请回复需修改的参数,或直接输入 “ok” 以采用全部默认值。
依据用户确认的参数执行:
音频或视频:
nlm [audio|studio] create--[format] --[length] --language --confirm
捕获返回的 产物 ID(Artifact ID)。
信息图或幻灯片:
nlm studio create--type [infographic|slides] --confirm
捕获返回的 产物 ID(Artifact ID)。
按轮询最佳实践模式创建临时目录:
/tmp/notebooklm-studio/_ _ / task.json ← 完整任务元数据 progress.json ← 轮询次数、产物 ID、最新状态 poll.log ← 每次轮询尝试日志 error.log ← 错误日志 done.flag ← 成功时创建
写入 task.json 文件:
{
"notebook_id": "",
"notebook_name": "",
"artifact_id": "",
"studio_type": "audio",
"output_path": "~/ObsidianVault/Default/NotebookLM//",
"poll_interval_seconds": 300,
"max_polls": 8,
"created_at": ""
}
使用用户当前会话语言通知用户:
“内容生成已启动。我将在后台持续监控,并在就绪后通知您(通常耗时 2–5 分钟)。每 5 分钟轮询一次,最长等待 40 分钟。”
在后台启动轮询脚本:
cd /tmp/notebooklm-studio// nohup bash /tmp/notebooklm-studio/poll.sh > /dev/null 2>&1 &
将以下脚本写入 :
#!/bin/bash set -euo pipefail TASK_DIR="/tmp/notebooklm-studio/" cd "$TASK_DIR" [[ -f done.flag ]] && echo "Already done." && exit 0 POLL_COUNT=$(grep '"poll_count"' progress.json 2>/dev/null | sed 's/[^0-9]//g') || POLL_COUNT=0 MAX_POLLS=8 INTERVAL=300 log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a poll.log; } while true; do POLL_COUNT=$((POLL_COUNT + 1)) if [[ $POLL_COUNT -gt $MAX_POLLS ]]; then log "TIMEOUT after $MAX_POLLS polls" echo "Timeout" >> error.log exit 1 fi log "[Poll $POLL_COUNT/$MAX_POLLS] Checking status..." RESULT=$(nlm studio status "$(grep '"notebook_id"' task.json | sed 's/.*: *"([^"]*)".*/1/') 2>&1) || true echo "$RESULT" >> poll.log # Check if our artifact is completed ARTIFACT_STATUS=$(echo "$RESULT" | grep -A5 ""id": "$(grep '"artifact_id"' task.json | sed 's/.*: *"([^"]*)".*/1/')"" | grep '"status"' | sed 's/.*: *"([^"]*)".*/1/' | head -1) log "Artifact status: '$ARTIFACT_STATUS'" if [[ "$ARTIFACT_STATUS" == "completed" ]]; then log "Completed. Downloading..." OUTPUT_PATH=$(grep '"output_path"' task.json | sed 's/.*: *"([^"]*)".*/1/') nlm download audio "$(grep '"notebook_id"' task.json | sed 's/.*: *"([^"]*)".*/1/')" --id "$(grep '"artifact_id"' task.json | sed 's/.*: *"([^"]*)".*/1/')" -o "$OUTPUT_PATH" >> poll.log 2>&1 || true if [[ -s "$OUTPUT_PATH" ]]; then log "Downloaded: $OUTPUT_PATH ($(du -h "$OUTPUT_PATH" | cut -f1))" touch done.flag else log "Downloaded file is empty" echo "Empty output" >> error.log fi exit 0 fi if [[ "$ARTIFACT_STATUS" == "failed" ]]; then log "Generation failed" echo "Failed" >> error.log exit 1 fi # Save progress sed -i "s/"poll_count": [0-9]*/"poll_count": $POLL_COUNT/" progress.json log "Still in_progress. Sleeping ${INTERVAL}s..." sleep "$INTERVAL" done
初始化 progress.json:
{
"poll_count": 0,
"last_poll_at": null,
"last_poll_result": null
}
当轮询进程退出(成功或失败)时:
成功时:
“✅ [内容类型] 已就绪!nn笔记本:[名称]n保存至:[路径]n大小:[大小]n轮询次数:[N](约 [X] 分钟)”
失败或超时时:
“❌ [内容类型] 生成未完成。nn笔记本:[名称]n原因:[超时 / 认证错误 / 生成失败]nn可选操作:n1. 使用相同参数重试n2. 手动检查 NotebookLM 网页界面n3. 清理临时文件夹”
# 列出笔记本 nlm notebook list # 查询状态 nlm studio status# 创建音频 nlm audio create --format deep_dive --length default --confirm # 创建视频 nlm studio create --type video --format brief --confirm # 创建信息图 nlm studio create --type infographic --confirm # 创建幻灯片 nlm studio create --type slides --confirm # 下载(获取产物 ID 后执行) nlm download [audio|video|infographic|slides] --id -o
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习