Skip to content

Repository files navigation

video-bridge

把 B站视频变成可检索、可反复回看的文字知识库 —— 取字幕/转写 → 按内容分段精编 → 选身份做全片总结升华 → 存进 Obsidian,跨视频全文检索。

A Claude Code skill that turns Bilibili videos into a searchable, re-readable text knowledge base.

它是 podcast-bridge 的「视频版」,复用其转写/章节/Markdown 引擎;音频播客与视频共用同一套「转录后产物」工作流。

能做什么

  • 取文本(两条路自动降级)
    • 字幕快路径:命中 B站 AI/CC 字幕直接拉,秒级、免转写、免本地模型(需浏览器登录态取 cookie)。
    • 转写兜底:无字幕时 yt-dlp 抽音频 → ffmpeg 转码 → BcutASR 分片并发转写(免 key)。
  • 段落级时间戳:字幕/ASR 的 2–3 秒碎片自动合并成段落,降时间戳密度。
  • 跨视频全文检索:SQLite FTS5 + jieba 中文分词;命中 0 时退化为子串搜索。
  • (Agent 产物)按内容分段的逐字精编 + 身份化全片总结升华:见 工作流

每个单集落 1–2 个产物,结构 <library_dir>/<频道>/<单集>/{全文稿.md, 笔记.md}

依赖

依赖 说明
Python 3.10+(推荐 python3.11 系统 3.9 无法 import 引擎
ffmpeg / ffprobe 音频转写兜底(brew install ffmpeg
yt-dlp 取登录 cookie 拿 AI 字幕 + 无字幕时抽音频(brew install yt-dlppip install yt-dlp
podcast-bridge ⭐ 复用其 transcribe.py 转写引擎。默认在 ~/.claude/skills/podcast-bridge,或用环境变量 PODCAST_BRIDGE_DIR 指定
jieba(可选) 改善中文检索分词(pip install jieba
Obsidian(可选) 产物是带 YAML frontmatter / wikilink / dataview 的 Markdown,在 Obsidian 里体验最佳;纯 Markdown 在任何地方都能看

安装

# 1) 装系统依赖
brew install ffmpeg yt-dlp        # macOS
python3.11 -m pip install jieba   # 可选,中文检索更准

# 2) 配置(复制示例后改成你的库目录)
cp config.example.json config.json
#   编辑 config.json 的 library_dir,指向你想存的目录(可指到 Obsidian vault 某子文件夹)

# 3) 确认转写引擎 podcast-bridge 已安装
#    默认 ~/.claude/skills/podcast-bridge;若在别处:export PODCAST_BRIDGE_DIR=/path/to/podcast-bridge

用法

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                              # 列出已收录视频

B站 AI 字幕需要登录态。analyze.py 会按序尝试 BILIBILI_SESSDATA 环境变量 → ~/.bilibili_cookies.txtyt-dlp --cookies-from-browser。确保浏览器已登录 bilibili.com,或手动设 export BILIBILI_SESSDATA=...

产物布局

<library_dir>/
├── library.sqlite3              # 全文检索库
└── <频道/UP主>/                 # 频道父文件夹(有则复用,无则新建)
    └── <单集标题>/
        ├── 全文稿.md            # 段落级 / 按内容分段逐字稿(兼检索源)
        └── 笔记.md              # 身份化全片总结升华(Agent 产物)

可选:多智能体工作流

workflows/ 下两个 Claude Code Workflow 模板,用于长访谈(全文稿 > ~3 万字、单次输出装不下)或要求高保真时:

  • segment_transcript.js —— 按内容分段:切块 → 每块并行重排(说话人标注 + 话题小节 + 段落时间戳 + 口语清洗)→ 拼回。
  • note_elevation.js —— 身份化升华:深读选身份 → 撰写 →(可选)双视角对抗校验 → 按需修订。

⚠️ 对抗双校验(事实接地 + 过度拔高)是可选附加,由 note_elevation.js 里的 const VERIFY 控制,默认关闭。它显著提升保真/可核查度,但每集要多跑 2 个校验 + 可能 1 个修订 agent、重读全文稿数遍,很费 token。高风险/事实密集内容(人物访谈、数据引文多)再开。

短稿无需工作流,Agent 直接读着做即可(见 references/summarization.md)。

致谢

转写/章节/Markdown 引擎复用 podcast-bridge。BcutASR 由哔哩哔哩「必剪」提供(免费免配置)。

License

MIT

About

把 B站视频变成本地文字并加以分析的skill· A Claude Code skill: Bilibili videos → searchable, re-readable text knowledge base

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages