NotebookLM Content Creation

Polar Sponsor
爱发电 赞助
.NET 9.0

通过 notebooklm-mcp-cli 创建和监控 NotebookLM Studio 内容——包括音频概览、视频概览、信息图表和幻灯片。适用于用户想要...

注释本LM内容创建. 创建注释本LM工作室内容(Audio Overview, Video Overview, Infography, Slips),并使用背景

功能概述

注释本LM内容创建. 创建注释本LM工作室内容(Audio Overview, Video Overview, Infography, Slips),并使用背景是一项面向实际任务的技能,主要用于Requires:.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

NotebookLM 内容创作

创建 NotebookLM Studio 内容(音频概览、视频概览、信息图、幻灯片),并通过后台轮询循环监控其生成直至完成。

前提要求:

  • 已安装 notebooklm-mcp-cli:执行 uv tool install notebooklm-mcp-cli
  • 已完成身份认证:执行 nlm login(该步骤已在服务器端完成)

Studio 类型

类型 命令 格式 时长/长度
音频概览 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 —

工作流

步骤 1 — 笔记本选择

列出全部笔记本:

nlm notebook list

解析 JSON 输出中的 id 和 title 字段,与用户输入的关键词进行不区分大小写的子串匹配。若存在多个匹配项,则按编号列出供用户选择。

若无匹配笔记本:

  • 向用户提问:“未找到匹配 ‘[keyword]’ 的笔记本。是否新建一个笔记本,或向现有笔记本添加更多资料源?”
  • 若用户确认新建笔记本:执行 nlm notebook create ""
  • 随后添加资料源:执行 nlm source add --url --wait

步骤 2 — 检查已有产物

在创建新内容前,先检查该笔记本是否已生成过对应产物:

nlm studio status 

若存在 status: completed 的产物,向用户展示并提问:

“该笔记本已存在已完成的内容。是否下载现有的 [type],还是生成新内容?”

  • 下载现有产物:直接进入下载步骤
  • 生成新内容:继续执行步骤 3

步骤 3 — 预检确认(单条消息,一次性确认全部参数)

所有参数在同一轮交互中一并询问,使用用户当前会话语言表述。

正在从“[笔记本名称]”创建 [音频/视频/信息图/幻灯片] 概览

请确认:

① 内容类型:[音频概览 / 视频概览 / 信息图 / 幻灯片]
② 格式:[deep_dive / brief](默认:deep_dive)
③ 长度:[short / default / long](默认:default)——信息图与幻灯片不支持此选项
④ 语言:[BCP-47 语言代码,例如 en、zh-CN](默认:笔记本自动检测的语言,或 en)
⑤ 输出路径:[路径](默认:~/ObsidianVault/Default/NotebookLM//)

请回复需修改的参数,或直接输入 “ok” 以采用全部默认值。

步骤 4 — 创建内容

依据用户确认的参数执行:

音频或视频:

nlm [audio|studio] create  --[format] --[length] --language  --confirm

捕获返回的 产物 ID(Artifact ID)。

信息图或幻灯片:

nlm studio create  --type [infographic|slides] --confirm

捕获返回的 产物 ID(Artifact ID)。

步骤 5 — 建立任务目录

按轮询最佳实践模式创建临时目录:

/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": ""
}

步骤 6 — 通知用户并启动后台轮询

使用用户当前会话语言通知用户:

“内容生成已启动。我将在后台持续监控,并在就绪后通知您(通常耗时 2–5 分钟)。每 5 分钟轮询一次,最长等待 40 分钟。”

在后台启动轮询脚本:

cd /tmp/notebooklm-studio//
nohup bash /tmp/notebooklm-studio/poll.sh > /dev/null 2>&1 &

步骤 7 — 轮询脚本

将以下脚本写入 /poll.sh:

#!/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
}

步骤 8 — 完成处理

当轮询进程退出(成功或失败)时:

成功时:

  • 验证目标文件是否存在且非空
  • 若尚未移至确认的输出路径,则将其移动过去
  • 使用用户当前会话语言通知用户:

    “✅ [内容类型] 已就绪!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 

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习