前言¶
在 DeepSeek Harness(DSH)里做知识沉淀,常见做法是:把视频里的信息落成可检索的 Markdown,放进 Obsidian。若自己写脚本拉 B 站资源,容易踩到「误下视频、分 P 时间轴错乱、无字幕仍生成空笔记」等问题;若把摘要、要点、标签全交给模型自由发挥,又缺少可校验的中间格式。
bilibili-note 把流程拆成两半:拉字幕、解析、排版、校验由 CLI / 技能脚本固定;摘要、要点、标签通过 content.json 约定交给模型或人工填写。下面按 DSH 插件视角介绍其能力与用法。
这是什么¶
bilibili-note 由维护者 3588834014-del 发布,在 SkillHub 插件目录 中归类为联网工具(目录页标注版本 v1.2.0)。项目同时提供独立 CLI 与可选的 DSH Agent Skill,二者共用实现(scripts/bili_note.py),安装路径相互独立。
一句话定位:输入 B 站视频链接,只通过 yt-dlp 拉取字幕文件(不下载视频),生成带 YAML front matter、可点击 ?t= 跳转要点、底部折叠全文的 Obsidian 笔记。
核心功能¶
只拉字幕,并校验未落盘媒体¶
fetch 强制 --skip-download,并在工作目录检查是否出现 .mp4、.flv、.m4a、.part 等媒体文件,避免误下视频。数据通道仅依赖 yt-dlp,不依赖私有 API。
分 P 合集合并时间轴¶
对 B 站分 P 合集,会逐 P 拉字幕并把时间戳重基准到一条连续时间线上。某一 P 无字幕时会跳过该 P 字幕内容,但保留其时长占位,避免后续 P 的时间戳整体前移。若多 P 字幕字节级完全相同,工具会报错退出,而不是重复同一部分内容。
无字幕则跳过¶
没有可用字幕时不会编造内容,也不会写出空笔记。
机械环节与判断环节分离¶
整体数据流如下:
Bilibili URL ──▶ fetch ──▶ manifest.json ──▶ [你 / Agent] ──▶ content.json ──▶ write ──▶ note.md
│ subtitles + summary, bullets, │
│ timestamped segments tags │
└── yt-dlp, subtitles only ────────────────────────────────────────┘
- 脚本侧:
fetch、write、verify、selftest等。 - 模型 / 人工侧:按文档填写
content.json(摘要、正文要点、标签、带time的 bullets)。不提供content.json时可生成带占位符、status: draft的草稿笔记。
DSH 技能触发¶
将技能安装到 ~/.agents/skills/bilibili-note 后,会出现在 dsh 技能目录中,可用类似「B站笔记」的短语触发(以你本地 DSH 配置为准)。
安装与启用¶
依赖:Python 3.8+(仅标准库);yt-dlp 作为外部命令(README 建议 pip install -U yt-dlp)。许可证为 MIT。
作为 DSH Agent Skill¶
在已具备插件源码的目录中执行(SkillHub 目录页标注可安装,安装后一般可获得该目录):
python scripts/install.py # 安装到 ~/.agents/skills/bilibili-note
python scripts/install.py --dry-run # 预览将复制的文件
说明:安装技能不会自动安装 CLI;反之亦然。
作为独立 CLI(可选)¶
若希望在终端单独使用同一套逻辑:
pipx install git+https://github.com/3588834014-del/bilibili-note.git
安装后可用 bili-note --version 检查。
典型用法¶
Cookies(AI 字幕通常需要)¶
B 站 AI 字幕接口需要登录态。可用浏览器扩展 Get cookies.txt LOCALLY 登录 bilibili.com 后导出 cookies.txt。上传者自带字幕的视频有时可不配置。
注意:该扩展导出的 Netscape 格式可能与 http.cookiejar / yt-dlp 对域名字段的要求不一致,症状常表现为「像是没有字幕」。工具内置 normalize_cookies() 做域名与去重处理,一般无需手改文件。
指定 cookie 路径:
export BILI_COOKIES=/path/to/cookies.txt # Linux / macOS
PowerShell:
$env:BILI_COOKIES = "C:\path\cookies.txt"
笔记输出目录¶
不写死默认 Vault 路径,避免在别人机器上静默建空目录。可显式传参或设环境变量:
bili-note note "<URL>" --note-dir "<vault>/Sources/Videos"
export BILI_VAULT="/path/to/MyVault"
export BILI_TARGET_DIR="Sources/Videos" # 可选,默认即为 Sources/Videos
常用命令¶
# 仅拉元数据与字幕到工作目录
bili-note fetch "<URL>" --out ./work
# 从已有 work 目录写入笔记(可附带 content.json)
bili-note write --work ./work --note-dir "<vault>/Sources/Videos" --content-file content.json
# 一步:fetch + write
bili-note note "<URL>" --note-dir "<vault>/Sources/Videos" [--content-file content.json]
# 检查生成笔记结构
bili-note verify --note "<note path>"
# 本地自检:cookie、yt-dlp、输出目录(不联网)
bili-note selftest
content.json 字段约定示例(time 单位为秒,工具负责渲染 MM:SS 与跳转链接):
{
"summary": "One sentence, 60-120 chars, conclusion first.",
"body": "200-400 chars covering the argument and the conclusion.",
"tags": ["认知", "人文"],
"cards": ["CC_example"],
"bullets": [
{"time": 0, "title": "Short heading", "text": "One sentence."},
{"time": 23, "title": "Short heading", "text": "One sentence."}
]
}
生成笔记含 type: video-note、source 原链接、tags 等 front matter,正文含视频信息 callout、摘要、带 ?t= 的要点列表,以及底部折叠的全文转录。
适用场景与注意¶
适合谁:已经把 Obsidian 当知识库、需要从 B 站视频做「可跳转、可检索」笔记的 DSH / 智能体开发者;希望机械步骤可脚本化、摘要与标签仍由模型按契约填写的场景。
使用前建议:
- 在 GitHub 仓库 阅读 README 与
LICENSE,确认行为与许可证符合你的环境要求。 - DSH 技能与联网步骤会在当前 dsh 进程权限下执行(读 cookie、调用
yt-dlp、写 Vault 目录)。安装插件或技能前请检查源码与依赖来源。 - Cookie 文件含登录态,勿提交到公开仓库;仅拉字幕可降低带宽与合规风险,但仍需遵守 B 站与内容版权相关规则。
DSH 社区奉行「一切皆插件」;SkillHub 为独立目录站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
bilibili-note 把 B 站视频笔记拆成「字幕与版式自动化」和「摘要判断可契约化」两段,适合接到 DSH 工作流里做 Obsidian 沉淀。目录与元数据见 SkillHub:3588834014-del/bilibili-note,源码与详细说明见 GitHub:3588834014-del/bilibili-note。