| name | video-bridge |
| description | 一个让 AI Agent 获取、转写、检索并理解 B站视频内容的 Skill。给定 BV号或视频链接,优先抓取 B站 AI/CC 字幕(秒级、免转写),无字幕时自动抽音频本地转写(BcutASR,免 key),生成自动章节与全文稿,写入知识库(默认 Obsidian,目录可配,带处理时间戳),并支持跨视频全文检索。适用于用户提供 B站视频链接/BV号,或要求转写视频、总结视频、提取要点、做学习笔记、检索看过的视频讲过什么话题等场景。 |
video-bridge
video-bridge 把 B站视频转成可检索、可回看的文字知识库:取字幕或转写 → 生成章节与全文稿 → 存入知识库(默认 Obsidian,目录可配)→ 跨视频全文检索。它是 podcast-bridge 的视频版,并复用其转写/章节/Markdown 引擎。
核心原则
根据用户请求选择最窄、最直接的工作流:
| 用户请求 | 执行动作 |
|---|
| 提供视频链接并要求全文稿 | 运行 python3.11 analyze.py "<url>",返回全文稿路径和统计。 |
| 提供视频链接并要求总结、要点或笔记 | 先运行 analyze.py 生成全文稿,读取该文件,再在最终回复中写出用户要求的总结内容。 |
| 要“总结/升华/提炼”或一篇有高度的通读笔记 | 读全文稿后选一个最切合本期主题的身份(如意义疗法心理学家/科学家/人生导师,由内容定),用该视角做全片提炼升华,写进单集文件夹的 笔记.md(见 references/summarization.md 的笔记工作流)。 |
| 问“我看过的视频里有没有讲过某话题” | 运行 analyze.py search "<关键词>",区分“全文命中”和命中数量。 |
| 想看知识库里收录了哪些视频 | 运行 analyze.py list。 |
| 要“按内容分段”的精编/逐字稿(脚本的段落是按时长机械合并,不懂语义) | 先 analyze.py 出全文稿,Agent 读全文稿后按话题/问答边界重分段,产出逐字精编稿(见 references/summarization.md 的 transcript 工作流)。 |
重要边界:
- 必须用
python3.11(或更高),不要用系统 python3(3.9 无法 import 转写引擎)。
analyze.py 是确定性入口,负责取字幕/转写、章节、入库、检索。
- 摘要由 Agent 读全文稿后自己写,脚本不生成摘要文件。如果用户要摘要,最终回复必须包含摘要正文,不能只回“转写完成”。
- 默认优先 B站字幕(快、免转写);无字幕才抽音频转写。AI 字幕需要登录态,cookie 自动从浏览器读取。
- 查询库状态时读实时数据库,不要依赖文档里的固定数量。
参考文件路由
只读取当前任务需要的参考文件:
references/analysis.md:单视频分析流程、字幕 vs 转写降级、启动前检查、参数。
references/summarization.md:brief / deep / 学习笔记 / obsidian 等摘要格式。
references/library.md:知识库结构、全文检索、Obsidian 落点与索引。
references/troubleshooting.md:cookie/字幕缺失、yt-dlp、编码、FTS 等问题。
常用命令
在 video-bridge 目录下运行(或用 analyze.py 绝对路径):
python3.11 analyze.py "https://www.bilibili.com/video/BV1xxxxx/"
python3.11 analyze.py BV1xxxxx --transcribe
python3.11 analyze.py BV1xxxxx --no-chapters
python3.11 analyze.py search "<关键词>"
python3.11 analyze.py list --limit 30
config.json 的 library_dir 决定知识库落点(首次从 config.example.json 复制后自行设置;指向 Obsidian vault 子目录体验最佳)。
交付要求
- 分析完成后报告:全文稿路径、字幕来源(字幕 / 转写)、段数、字数、章节数、处理时间。
- 回答检索类问题时说明覆盖范围:命中多少条、库内共多少视频可全文检索。