Bilibili Subtitle Extractor Skill | B站原始字幕优先 + Whisper 兜底下载
一个可复用的 Codex Skill:优先抓取 B站官方字幕,失败时自动回退到 yt-dlp + Whisper small,并输出原始字幕 Markdown 与阅读整理版 Markdown。
☕ 随意打赏下载
ZIP · 12KB
工具简介
这是一个专门给 Codex 用的 Bilibili 字幕提取 Skill。它的目标不是单纯“把视频转成文字”,而是把 B 站视频内容尽量优先走官方字幕链路,只有在拿不到字幕的时候,才自动回退到 yt-dlp + Whisper small。
最终它会稳定产出两份 Markdown:
视频标题_字幕.md视频标题_整理版.md
如果你经常需要把 B 站视频整理成公众号草稿、博客文章、知识库笔记,或者后续要继续做内容创作,这个包会比手工复制字幕、临时跑转写、更适合长期复用。
核心能力
官方字幕优先,不乱转写
这个 Skill 的第一原则是:只要 B 站官方字幕能拿到,就直接使用官方字幕 JSON,而不是多此一举重新做 ASR。
处理顺序是:
- 识别输入类型
- 解析 BV 号
- 获取
cid - 查询字幕配置
- 优先下载官方字幕
- 只有在官方字幕缺失或失败时,才回退到 Whisper
支持多种输入
ZIP 里的脚本可以直接处理:
- B 站视频链接
- BV 号
- 已下载的字幕文件:
.json/.srt/.vtt - 本地视频文件
- 本地音频文件
也就是说,如果你手上已经有字幕文件,它不会重新下载视频,更不会重复转录。
Whisper small 自动兜底
如果视频没有官方字幕,脚本会自动:
- 调用
yt-dlp下载音频 - 使用
whisper small转写 - 把结果统一转换成 Markdown
这个默认值适合在准确率、速度和本地可跑性之间做一个比较稳妥的平衡。
输出适合后续创作
这个包不只给你一份“字幕垃圾堆”。
它会把字幕统一整理成标准 Markdown 结构,方便你继续做:
- 公众号文章
- 博客长文
- Obsidian 知识库
- 视频内容二次加工
同时还附带一个 prompt.md,方便你直接把同一套提示词丢给 Codex 或继续按自己的方式改写。
包含内容
ZIP 文件中主要包含:
bilibili-subtitle-extractor/SKILL.md:Skill 说明与工作流约束bilibili-subtitle-extractor/agents/openai.yaml:技能元数据bilibili-subtitle-extractor/scripts/extract_bilibili_subtitles.py:主脚本prompt.md:可单独复用的提示词文档
适用场景
1. 做视频内容整理
适合把 B 站视频快速变成可读文本,再进入摘要、改写、选题、知识提炼等环节。
2. 做内容创作素材库
如果你经常从视频里整理:
- 观点
- 方法论
- 数据
- 案例
- 操作步骤
这个 Skill 可以直接把原始字幕和整理版沉淀成长期可检索素材。
3. 做自己的一套字幕处理工作流
如果你不是只想“这次用一下”,而是想把 B 站字幕提取做成一个长期复用的本地工具,这个开源包会更合适。
安装与使用
将 Skill 解压后,脚本入口是:
python3 ~/.codex/skills/bilibili-subtitle-extractor/scripts/extract_bilibili_subtitles.py "<input>" --output-dir "<output-dir>"
常见可选参数:
--cookies /absolute/path/to/cookies.txt
--whisper-model small
--language Chinese
--title "自定义标题"
--keep-temp
当你在 Codex 里调用时,也可以直接用附带的 prompt.md 作为起点,再按自己的偏好继续扩展。
为什么值得下载
这个包的价值不在于“写了一个脚本”,而在于它把几个容易反复重写的步骤固定下来了:
- 官方字幕优先
- Whisper 只做兜底
- 输入类型自动识别
- 输出结构统一
- 整理版内容保持保守,不编造事实
对于内容工作流来说,这比单次临时转写更省心,也更容易复用。
使用提醒
- 如果某条视频本身没有官方字幕,不要把回退到 Whisper 视为异常。
- 如果
yt-dlp拉不到音频,通常说明视频需要登录态,这时可以补cookies.txt。 - 如果你对事实保真要求很高,建议保留原始字幕版,再基于它继续做人工校对或深度改写。
☕ 觉得有帮助?