小宇宙单集 URL → Get笔记 转写 → NotebookLM 结构化摘要 → 飞书文档或 IMA 笔记。
- 「小宇宙播客摘要」「这期播客做笔记」
- 「播客转写 + 总结 写到飞书」
- 「这期 podcast 转 IMA」
| 字段 | 必填 | 说明 |
|---|---|---|
| 小宇宙单集 URL | ✅ | https://www.xiaoyuzhoufm.com/episode/xxx |
| 输出目标 | ⬜ | 飞书 / IMA / 本地,默认飞书 |
| 摘要风格 | ⬜ | 要点提炼 / 逐段解析 / 金句卡片,默认要点提炼 |
- 完整转写(含说话人分离 + 时间戳,若 API 支持)
- 结构化摘要:
- 单集主旨(1 段)
- 嘉宾介绍(若有)
- 核心观点(5-10 条,含时间戳锚点)
- 金句摘录(3-5 条)
- 延伸阅读(NotebookLM 自动推荐)
✅ 2026-05-20 实测简化:小宇宙网页版的 shownotes 通常已包含完整章节时间戳 + 嘉宾信息 + 节目简介,WebFetch 直接拿到这些信息就足够生成高质量摘要,很多场景下根本不需要音频转写。
[Step 1] 抓取单集页面(WebFetch)
├─ 输入:小宇宙 episode 或 podcast URL
├─ 输出:节目名、单集名、嘉宾、时长、章节时间戳、shownotes
└─ 注意:拿不到音频 URL(小宇宙防盗链),但通常不需要
[Step 2A] 优先:基于章节时间戳直接出摘要(推荐 ✅)
├─ 章节标题 + 节目简介 + 嘉宾信息 → LLM 摘要
├─ 输出质量:金句、要点、推荐延伸 都能产出
└─ 速度:秒级
[Step 2B] 备选:转写音频(仅当章节信息不全)
├─ Get笔记 API(需 GETNOTE_API_KEY)
├─ 或 Whisper.cpp 本地(large-v3)
└─ 输出:完整逐字稿
[Step 3] 检测 NotebookLM 可用性
└─ `notebooklm status` → 可用 → 走路径 A(生成 Audio Overview)
└─ 不可用 → 降级走路径 B(直接 LLM 摘要)
### 路径 A:NotebookLM Audio Overview(推荐)
[Step A1] 写逐字稿为 .txt → 将转写稿或章节摘要写入 /tmp/podcast.txt
[Step A2] 上传 NotebookLM(Playwright 浏览器上传) node scripts/notebooklm-playwright.js upload-text "<节目名> EP<集数>" "<单集标题>" ""
[Step A3] 生成 Audio Overview node scripts/notebooklm-playwright.js generate "<节目名> EP<集数>" audio [outputDir]
[Step A4] 落地同上(飞书 / IMA)
### 路径 B:C 方案(降级 fallback)
直接跳到 Step 4:LLM 结构化摘要
[Step 4] 生成结构化摘要
├─ 按选定风格调用对应 prompt
├─ 每条要点带时间戳(mm:ss)
└─ 输出:summary.md
[Step 5] 落地
if 目标 == 飞书:
→ 调用 lark-master 创建 docx
→ 模板:标题 / 元数据卡 / 主旨 / 核心观点 / 金句 / 延伸 / 原始转写折叠
→ 归档到用户指定的播客笔记目录(首次使用通过 AskUserQuestion 询问 folder_token)
if 目标 == IMA:
→ ima-skill:notes 写入
→ tags: 播客摘要, <节目名>
你是一位高效的知识工作者,需要把这期播客转换成可执行笔记。
输入:完整逐字稿(已附时间戳)
输出格式:
## 一句话主旨
(不超过 50 字)
## 嘉宾 / 主播
- 姓名 - 身份 - 这期他们带来的独特视角
## 核心观点(按重要性排序)
1. [00:12:34] 观点标题:观点描述(80-120 字),原文金句「……」
2. ...
(5-10 条,每条必须带时间戳,便于回听)
## 金句摘录
> 「原文金句 1」 — 说话人,时间戳
## 延伸思考
- 这期跟哪类内容(书 / 文章 / 其他播客)形成对话?
- 我作为 [听众身份],能在哪个场景应用?
要求:
- 时间戳必须真实,从转写中查找
- 不编造嘉宾未说的内容
- 中文输出,避免英式表达
| 失败点 | 降级 |
|---|---|
| Get笔记 API 没配置 | 用 Whisper.cpp 本地转写(慢但免费) |
| 音频下载失败(小宇宙防盗链) | 让用户手动下载后传本地路径 |
| NotebookLM 失败 | 直接用 Gemini API 处理 transcript |
把"晚点聊"近 5 期都转写并整理到飞书《晚点聊·季度精华》
AI 内部循环:抓 RSS 列表 → 取最近 5 个 episode_url → 各自走完整 pipeline → 汇总到一份飞书表格
对比"硅谷 101"近 3 期关于 OpenAI 的讨论,找出观点演进
~/Downloads/neirong-gongfang/podcast-summary/2026-05-20/
├── meta.json
├── transcript.json # 完整逐字稿
├── transcript.txt # 纯文本版(喂给 NotebookLM)
├── summary.md # 结构化摘要
└── audio.m4a # 原音频(缓存,可手动删)
详见
references/honesty-rules.md
章节时间戳路径下,AI 没听过原音频,"核心观点"段落是基于章节标题的合理推测。输出绝不能用"听过音频"的口吻写。
> **抓取完整度**: metadata-only(节目页 shownotes + 章节时间戳,未听原音频)
> **AI 演绎程度**: high(要点段落基于章节标题推断)
> ⚠️ 本摘要未听原音频。如需逐字稿,需走转写路径。- 章节标题 + 时间戳 + 嘉宾 + shownotes:直陈,标 (原文)
- 「核心观点」要点:基于章节标题的推测,每条带 (基于章节标题推测)
- 「金句」:除非来自 shownotes 明确引用,否则不要伪造
- "延伸思考" / "待办建议":明确标 (AI 建议)
{
"source_completeness": "metadata-only",
"ai_inference_ratio": "high",
"method": "WebFetch + LLM 摘要(无音频转写)",
"warnings": [
"未听原音频,要点基于章节标题推测",
"金句仅采用 shownotes 中确实出现的"
]
}如果用户希望降低 AI 推断比例:
- 走 Get笔记 / Whisper 转写路径,拿到逐字稿
- ai_inference_ratio 降到 low/medium