B站CC字幕下载指南:ccdown 一条命令拉取 CC 字幕并转成 SRT
【免费下载链接】BiliBiliCCSubtitle一个用于下载B站(哔哩哔哩)CC字幕及转换的工具;项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle
对着播放器抠了半小时外语课字幕,不如用 BiliBiliCCSubtitle(命令名 ccdown):把 B站CC字幕下载 存成 JSON,一条命令再转成 SRT。
项目名片:C++ 命令行工具,只干两件事
ccdown 是一个 C++ 写的命令行程序,跑在 Windows 10(x86/x64)上,日常使用不用装任何运行库。它只做两件事:
- 从 B 站官方接口把视频的 CC 字幕拉下来,存成 JSON 文件;
- 把这份 JSON 转成播放器通用的 SRT 字幕。
和录屏转文字、手动复制相比,它的差别是数据直接来自官方字幕——时间轴、断句、文字全部原样保留,不经过语音识别,所以不存在识别错别字的问题。
先跑起来:四步下载第一份 CC 字幕
第 1 步,确认环境。日常使用只要求 Windows 10;只有想从源码编译,才需要 CMake 3.16+、vcpkg、libcurl、jsoncpp。
winver看到窗口显示 Windows 10(x86 或 x64)就算过关。
第 2 步,拿到工具。克隆仓库,再编译出可执行文件(官方 README 也提供预编译版本,用预编译包可跳过两条 cmake 命令):
git clone https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle cd BiliBiliCCSubtitle cmake -B build cmake --build build看到 build 目录下出现 ccdown 可执行文件就算成功。
第 3 步,验证工具就位。
ccdown -h看到-d、-c、-s、-e、-D各参数的 MODE 说明,说明工具能跑。
第 4 步,下第一条字幕。
ccdown -d https://www.bilibili.com/video/BV1JE411N7UD看到当前目录出现downloads/BV1JE411N7UD/文件夹,里面有AV号(BV号)-P1.zh-CN.json这样的文件(视频提供几种语言就有几个 json),就算跑通了。国际版 B 站的产物在downloads/GLOBAL<视频ID>/下,文件名形如GLOBAL<视频ID>-<语言ID>.json。
它能替你干的活:命令参数对照表
下表里的BV1JE411N7UD换成你自己的视频地址即可,地址就是 B 站播放页链接:
| 使用场景 | 命令 | 效果 |
|---|---|---|
| 只下某个分 P | ccdown -d https://www.bilibili.com/video/BV1JE411N7UD?p=2 | 链接尾部?p=2指定只下第 2 P |
| 下某段范围的分 P | ccdown -s 2 -e 5 -d https://www.bilibili.com/video/BV1JE411N7UD | 顺序下 P2 到 P5 的字幕 |
| 只下前 N 集 | ccdown -e 6 -d https://www.bilibili.com/video/BV1JE411N7UD | 下 P1 到 P6 |
| 下 P1 及之后全部 | ccdown -s 1 -d https://www.bilibili.com/video/BV1JE411N7UD | 从 P1 一直下到最后一集 |
| 下载完顺手转 SRT | ccdown -c -d https://www.bilibili.com/video/BV1JE411N7UD | -c与-d同用,下载完成后自动转换 |
| 指定保存目录 | ccdown -D D:\字幕 -d https://www.bilibili.com/video/BV1JE411N7UD | 字幕存进你指定的目录 |
| 下载国际版 B 站 | ccdown -d https://www.biliintl.com/en/play/1010919/10446796 | 拉取国际版/东南亚版字幕 |
| 转换手头已有的 JSON | ccdown -c -o 输出.srt 输入.zh-CN.json | -o指定输出的 SRT 文件名 |
跑之前注意三个坑:
- 用
-s/-e做批量时,链接里不要带?p=——URL 里的?p=会覆盖范围参数;-D指定的目录必须已经存在,程序不会自动创建;-o只在-c转换模式下可用,下载模式下会被忽略并提示警告。
翻车急救:问一行答一行
- 跑完命令,
downloads/<BV号>/里是空的?这条视频没有 CC 字幕。回播放页看播放器下方有没有"字幕"开关,没有就别在这条视频上耗时间。 - 多 P 视频批量下,中间某一分 P 断掉了?旧版本遇到中间分 P 没有字幕会中断整个流程,2021-06-05 的版本已修复。升级到最新版重新跑一遍即可。
- 转换出来的 SRT 时间轴和画面对不上?旧版本时间轴换算逻辑有 bug。更新到最新版后重新用
-c转一次就能对上。
给想深挖的人:源码模块与读码顺序
整个工具就 10 个源文件,分工很清晰:
- main.cpp:解析命令行参数,分发到下载、转换、边下边转三种模式;
- ccjson_downloader.cpp:抓取逻辑核心,解析播放页拿到 aid/bvid,请求分 P 列表和字幕接口,按分 P 落盘 JSON,国际版走
play/<id>分支; - ccjson_convert.cpp:把字幕 JSON 换算成带时间轴的 SRT;
- curl_helper.cpp 封装 HTTP GET,common.cpp 负责创建 downloads 目录、路径存在性检查和 Windows 编码转换。
建议读码顺序:main.cpp→ccjson_downloader.cpp→ccjson_convert.cpp→curl_helper.cpp/common.cpp,顺着"页面 → 接口 → 文件"的链路走一遍就能串起整个流程。
最常用命令与版权提醒
日常使用频率最高的一条,直接复制:
ccdown -c -d https://www.bilibili.com/video/BV1JE411N7UD跑完到downloads/<BV号>/里取 SRT,和同名视频放进同一文件夹,播放器会自动加载。
最后提醒一句:字幕是 UP 主和平台的内容资产,请仅用于个人学习、研究,不要拿去做商用搬运,尊重原创者的劳动成果。
【免费下载链接】BiliBiliCCSubtitle一个用于下载B站(哔哩哔哩)CC字幕及转换的工具;项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考