在哔哩哔哩视频页一键提取字幕 —— 复制到剪贴板 或 下载成 TXT,把视频变成可以喂给 AI 的纯文本。
⬇️ 下载最新版 · 未上架应用商店,需要手动加载,步骤见 安装
字幕是视频里信息密度最高的东西。把字幕抠出来交给大模型,可以顺手完成很多事:
- 长视频摘要:一小时的技术分享,30 秒读完核心结论
- 值不值得看:先看大纲再决定要不要花时间
- 翻译 / 术语提取 / 知识卡片:把口播内容转成可检索、可复用的笔记
- 检索与对比:多个视频的字幕放到一起找差异
问题是 B 站没有字幕导出的入口。这个扩展只做一件事,并且做干净:纯本地运行,不经过任何第三方服务器,拿到字幕后一键复制或下载。
| 功能 | 说明 |
|---|---|
| 一键提取字幕 | 打开视频页点一下图标即可,字幕按时间轴列在面板里 |
| 复制到剪贴板 | 纯文本一行一句,直接粘给 ChatGPT / Claude / DeepSeek 就能总结 |
| 下载 TXT | 自动命名为 视频标题_分集名.txt,文件名非法字符自动替换 |
| 多版本字幕切换 | 官方字幕、AI 自动生成字幕、翻译字幕在下拉框里自由切换 |
| 多分集支持 | 自动识别当前播放的分集,字幕不会张冠李戴 |
| 📚 合集批量下载 | 视频属于合集时,面板里多出一行合集入口(默认折叠),展开后可勾选视频/分P,一次性保存全部字幕 |
| 番剧 / 短链支持 | 番剧播放页、b23.tv 短链跳转后都能正常识别 |
| 🎚 音量增强(附加) | 滚轮在播放器区域直接调音量,最高 500%,突破 B 站 100% 上限;↑ / ↓ 方向键同样可用 |
| 🎨 控制栏美化(附加) | 把 B 站播放器控制栏的文字与图标改为亮白色,暗色背景下更清晰 |
附加的两个播放器功能是作者自用的顺带产物,默认常开,不影响字幕提取。
- 到 Releases 下载
BiliTextPicker-v1.6.7.zip并解压 - 打开
chrome://extensions/(Edge 为edge://extensions/),打开右上角的 开发者模式 - 点击 加载已解压的扩展程序,选择解压出来的
BiliTextPicker-v1.6.7文件夹 - 打开任意 B 站视频页,点击工具栏里的扩展图标(建议在扩展页固定图标)
下载本仓库(Code → Download ZIP,或 git clone)并解压,第 3 步选择仓库里的 dist 文件夹。
⚠️ 未上架应用商店。Windows 稳定版 Chrome 会拦截非商店来源的.crx,所以只能通过「开发者模式加载」这一种方式安装,.zip不能直接拖进浏览器。
- 打开一个有字幕的 B 站视频(例如
https://www.bilibili.com/video/BVxxxxxxxxxx/) - 点击扩展图标,面板会显示当前视频标题、分集名与字幕条数
- 需要的话在 字幕语言 下拉框里换一个版本
- 点击 复制字幕 或 下载字幕
- 粘贴给 AI,附上一句提示词即可
推荐的提示词模板:
以下是一个视频的字幕文本(按时间顺序,一行一句)。请:
1. 用 5 句话总结核心内容
2. 输出一份带层级的知识大纲
3. 列出 3 个最值得深入的点,并说明原因
字幕:
<在这里粘贴>
其他按钮
- 刷新字幕:重新加载当前标签页并重新抓取,用于切换分集后字幕没跟着变的情况
- 下载字幕:文件默认落在浏览器的下载目录,只含正文、不含时间码(时间码会白白占用 AI 的上下文)
当前视频属于某个合集时(视频页右侧有「合集」列表),面板里会多出一行合集入口 —— 默认是折叠的,只占一行,点右侧「展开」才露出视频列表:
展开后:
- 勾选想要的视频。点整行任意位置就能勾选(不用去点那个小复选框),再点一次取消;多P视频右侧有「展开」,可以只挑其中几集;勾父级复选框等于勾上它的全部分P,半选状态说明只选了一部分
- 全选 一键勾完整部合集
- 选导出方式:
- 单独 TXT(默认):每个视频一个
.txt,文件名以合集名 / 当前视频名打头,多P时按合集名_序号_视频标题_P2_分P标题.txt排开 - 打包为 ZIP:全部字幕打成一个 zip
- 合并 TXT:全部字幕拼进一个文件,每段用
===== 文件名 =====分隔
- 单独 TXT(默认):每个视频一个
- 选「单独 TXT」时,下面还有 统一存放 开关(默认关闭):
- 不勾:文件直接落在浏览器下载目录,名字里带合集名,脱离目录也能看出归属
- 勾上:收进一个以合集名命名的文件夹(
期末速成课合集!/01_视频标题_P2_分P标题.txt),文件名里就不重复带合集名了
- 点 下载选中字幕,面板底部会实时显示抓取与保存进度
保存走扩展的下载接口,文件直接落进浏览器下载目录(不会一个个弹「另存为」)。抓取期间请保持面板打开,结果要回到面板里才能保存。
Q:提示「该视频没有字幕」? A:B 站字幕有两个来源 —— UP 主手动上传的 CC 字幕,以及站方 AI 自动生成的字幕,两者都需要 UP 主或站方开启才存在。请先在网页播放器里确认能打开字幕面板。
Q:字幕列表是空的 / 只有一种语言? A:先登录 B 站账号再刷新页面。翻译字幕和部分 CC 字幕要求登录,且需要在播放器里把字幕打开过一次才会出现。
Q:提示「扩展未激活,请刷新页面」? A:常见于扩展刚加载、或页面早于扩展打开。刷新页面即可。
Q:多分集视频的字幕对不上? A:先确认地址栏里的分集参数与正在播放的分集一致,再点「刷新字幕」。
Q:复制按钮没反应? A:剪贴板需要页面焦点,先把鼠标移回面板再点;仍失败就直接「下载字幕」拿 TXT。
Q:音量增强会不会把声音弄坏? A:它接管的是播放器的音频输出,音量以浮层里的百分比为准。若同时装了其他改音频的扩展可能相互冲突。刷新页面即恢复默认。
Q:直播页面能用吗? A:能注入、能音量增强,但直播没有字幕数据,字幕功能不适用。
Q:面板里怎么没有合集区域? A:只有视频确实属于某个合集时才会出现。UP 主没建合集、或者单个投稿视频,都不会显示;如果页面右侧的合集列表还没加载出来,面板会稍等一会儿再检测一次。
Q:合集里点了十几个视频,下载的 ZIP 里却少几个文件? A:那些视频没有字幕(UP 主没开 CC 字幕、站方也没生成 AI 字幕),会被自动跳过,进度提示里会写明「N 个视频没有字幕」。其余字幕照常打包。
Q:一次勾太多会不会被 B 站限流? A:请求之间做了间隔,但整部合集上百集时仍可能有个别请求失败,失败的会在进度里标出来,重新勾选那几个再下一次即可。
Q:点了「下载选中字幕」,没看到文件? A:看面板底部的进度文字:
- 停在「正在抓取 x/y」→ 还在抓(每个视频之间有间隔,整部合集可能要几十秒),期间别关面板;
- 「抓取失败:…」→ 扩展和页面失联了,刷新页面重试;
- 「保存失败」→ 浏览器拦了下载,检查
chrome://settings/downloads里的下载位置是否可写。
文件默认落在浏览器的下载目录,每个 .txt 的名字都带合集名 / 当前视频名,从目录里挪走也能看出属于哪一批;
勾上 统一存放 则会收进一个以合集名命名的文件夹。
- 本仓库是发布仓库:
dist/里是可以直接加载运行的构建版本,不是开发源码 - 作者保留开发源码,因此仓库内的脚本做过变量改名与压缩,可读性较低 —— 这会导致无法被独立审计,请自行评估后使用;扩展本身不上架商店,也不收集任何数据
- 目录结构:
BiliTextPicker/
├── dist/ ← 可直接加载的扩展(选这个文件夹)
│ ├── manifest.json
│ ├── background.js
│ ├── content.js
│ ├── popup.html / popup.js
│ └── assets/ ← 图标
├── docs/images/ ← 本页预览图
├── README.md
└── LICENSE
| 权限 | 用途 |
|---|---|
activeTab / scripting |
读取当前标签页标题、按需注入内容脚本 |
storage |
预留扩展设置存储 |
cookies |
部分字幕(尤其是 UP 主上传的 CC 字幕、翻译字幕)需要登录态才能读取 |
downloads |
预留(当前下载不依赖该权限) |
| B 站域名访问 | 读取视频信息与字幕文件 |
扩展不收集、不上传、不存储任何用户数据;所有网络请求都直接发往 B 站官方接口,没有作者自己的服务器。
v1.6.7(当前版本)
- 修复「一次的点击下载,包含了我这次要下载的、和上次已经下载的」:
批量下载完成后勾选不会自动清空,接着勾下一批再点下载时,上一次那些会被一起再下发一遍
(文件名与上次完全相同,下载目录里还会多出
(1)副本)。现在一次下载 = 消费掉当前勾选, 落盘后自动清空并提示「已清空勾选,可继续勾下一批」;整批都没存下来时保留勾选,方便直接重试 - 修复「选集」面板的目录/文件名变成「视频选集」:B 站给「选集」面板的标题是个固定占位词
(不是真的合集名),现在会换成当前视频标题,例如
黑马程序员Java微服务课程(SpringCloud+RabbitMQ+Docker)/01_SpringCloud微服务课程导学.txt; 面板顶部显示的名称也一并改为视频标题
v1.6.6
- 批量下载的每个
.txt文件名统一以「合集名 / 当前视频名」打头, 例如期末速成课合集!_01_《大学物理》3小时期末速成课!_P2_质点动力学.txt - 新增 统一存放 开关(默认关闭):勾上后把文件收进一个以合集名命名的文件夹, 不勾则直接落在下载目录(靠文件名里的合集名区分归属)
- 导出方式文案精简为 单独 TXT / 打包为 ZIP / 合并 TXT
- 修复选集面板的文件名:那里取回来的组标题其实是第一集的标题,旧逻辑会把它粘到后面每一集上;
现在只用分集自己的标题(
某门课的选集_02_P3 第三讲.txt),分集名已带序号时也不再补一遍_P3
v1.6.5
- 修复「选中的视频都没有可用字幕」:B 站的「选集」面板把分P 的 cid 放在条目上,
旧版拿它当视频号去查接口,一律被拒(
-400 请求错误),整批视频因此全部抓不到 - 现在能区分两种面板:合集面板取 bvid、选集面板取 cid,并按 cid 精确抓取对应分集 (勾哪集抓哪集,不会再退化成把整个视频的上百个分P 全抓一遍)
- 修复限流:短时间连打上百个分P 会被 B 站限流,现在连续失败会自动放慢节奏 (进度里显示「接口限流,已自动放慢」),恢复正常后自动提速
- 区分「真没字幕」和「被风控」:只有接口确实没有字幕才提示没有字幕, 其余情况把真实原因(风控、请求错误等)直接显示在进度里
- 抓取请求补上 wbi 签名,与播放器自身的请求特征保持一致
- 只与页面主框架通信,避免页面里 iframe 的副本重复抓取、抢占响应
v1.6
- 新增 合集批量下载:自动识别当前视频所属合集,面板里以折叠的一行呈现(点「展开」才显示列表)
- 展开后可勾选视频与分P(多P视频支持单独挑集),点整行任意位置即可勾选,一次性抓取并保存全部字幕
- 三种保存方式:每个单独 TXT(默认,收进以合集名命名的文件夹)/打包为 ZIP/合并为一个 TXT
- 保存改用扩展下载接口,文件直接落进下载目录;带实时抓取与保存进度,无字幕的视频自动跳过
- 修复:合集下载必定提示「抓取失败」、随后又被进度刷成「已完成」、实际不产出任何文件的问题 (批量抓取的响应被消息通道提前丢弃)
- 抓取加固:某个接口失败时自动换备用接口并退避重试,降低触发 B 站风控的概率
v1.5
- 基础版:字幕抓取、多语言切换、复制到剪贴板、下载 TXT
- 多分集识别、短链与番剧页支持
- 附加:滚轮音量增强(最高 500%)、播放器控制栏亮白配色
- 本项目仅供个人学习、研究与自用,请遵守哔哩哔哩用户协议及相关法律法规
- 字幕内容的版权归原视频作者 / UP 主所有,请勿用于商业用途或二次分发
- 项目通过官方公开接口读取数据,未做任何破解;接口若发生变更,功能可能失效
- 使用本扩展产生的一切后果由使用者自行承担

