如果你经常在 Windows 上跟哔哩哔哩的视频文件打交道,大概率已经听说过 BBDown。这个基于 .NET 开发的开源命令行下载工具,是目前解析和下载 B 站视频体验最顺手的方案之一。我最近在 Windows 11 x64 环境里完整走了一遍从下载、配置、登录到跑通下载的流程,全程亲测可用,特意把操作细节和踩过的坑整理出来,给正在折腾的朋友做个参考。
这篇文章不是官方文档的复读,更像是我自己操作时的全程记录。内容包括环境搭建、核心命令拆解、进阶玩法,以及我在实际使用中遇到过的报错和解决过程。如果你是第一次接触 BBDown,跟着一步步做就能顺利跑通;如果你已经用了一段时间,后面关于字幕、弹幕、批处理脚本和排错的部分,或许能帮你省下一些自己摸索的时间。
1. 为什么选择 BBDown:同类工具的对比与取舍
1.1 它解决的是什么问题
B 站视频文件的下载逻辑和其他视频网站不太一样。同一个视频往往存在多个清晰度、多种编码格式和不同音轨,在线播放时网页端通过接口动态加载分片,普通下载工具抓到的是 m4s 切片,直接保存下来很难播放。BBDown 这类工具做的事情,本质上是模拟客户端请求、解析视频流地址、把分片拼接成完整文件,再交给 FFmpeg 封装成 mp4、mkv 或 flv。
我最早用过 you-get、youtube-dl、lux 这些工具下 B 站视频,但它们对多 P 视频、CC 字幕、高码率音轨的支持并不算完整。BBDown 是专门针对 B 站接口做的,对番剧、课程、互动视频等特殊类型的处理也更到位,解析速度快,更新频率也高。对于剪辑师、字幕组、up 主备份素材这类需要原画质资源的场景,BBDown 几乎是首选。
1.2 和其他下载工具的横向比较
| 工具 | 解析速度 | 多P支持 | 字幕弹幕 | 高码率 | 维护活跃度 | 上手难度 |
|---|---|---|---|---|---|---|
| BBDown | 快 | 完善 | 支持字幕和弹幕转换 | 最高8K | 活跃 | 低 |
| you-get | 较快 | 一般 | 字幕支持弱 | 受限于接口 | 一般 | 低 |
| yt-dlp | 中 | 一般 | 支持有限 | 一般 | 活跃 | 中 |
| lux | 快 | 一般 | 不支持 | 有限 | 较活跃 | 低 |
这个表格是我实际使用下来主观排序,仅供参考。BBDown 胜在"专",它只做 B 站这一件事,所以对接口的适配深度是通用的视频下载工具无法比的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Windows x64 环境搭建:下载、运行时与 FFmpeg 三件套
2.1 去哪里下载 BBDown 本体
BBDown 的官方发布渠道是 GitHub。打开项目的 Releases 页面,找最新的 win-x64 版本压缩包下载。文件名一般是 BBDown_版本号_win-x64.zip,解压后能看到 BBDown.exe、配置文件 BBDown.config.json、更新说明等文件。
这里有个很多人忽略的细节:GitHub Releases 页面里往往同时有多个平台的包,win-x64 和 win-arm64 不一样,win-x64 适用于绝大多数 Intel 和 AMD 处理器的 Windows 电脑。如果你的电脑是 Apple Silicon 的 Mac 装 Windows 虚拟机,那才需要考虑 arm64。判断方法很简单,任务管理器-性能-CPU,看"内核数"旁边是否显示"基于 x64 的处理器"即可。
2.2 补上 .NET 运行时
BBDown 依赖 .NET 运行时。不同版本要求不一样,较新版本可能要求 .NET 8,老版本依赖 .NET 6 或 7。下载前先看一下 Release 页面标注的依赖版本,去微软官方下载对应的 .NET Desktop Runtime x64 安装包。
微软下载页面有多个运行时包,注意选 Runtime 而不是 SDK。SDK 是给开发用的,普通使用只需要 Runtime。安装完成后,在 PowerShell 或 CMD 里输入 dotnet --info,能看到已安装的 .NET 版本列表,确认所需的运行时已经就位。
我遇到过一个情况:BBDown.exe 双击没有任何反应,既不弹窗也不输出。当时排查了很久,最后发现是 .NET 运行时没装齐。安装正确版本的运行时后,问题立刻消失。
2.3 FFmpeg 的安装与验证
BBDown 负责解析和下载,但音视频封装合并需要调用 FFmpeg。没有 FFmpeg,BBDown 也能跑,但下载下来的往往是分离的视频流和音频流,或者无法进行格式封装。所以提前装好 FFmpeg 是必要步骤。
Windows 下获取 FFmpeg 一般从 gyan.dev 下载 release builds,选 full 版本即可。解压后找到 bin 目录里的 ffmpeg.exe、ffprobe.exe、ffplay.exe,把 bin 目录加入系统环境变量 Path。也可以直接把 ffmpeg.exe 复制到 BBDown.exe 同目录下,BBDown 会优先查找同目录的 FFmpeg,这样最省事。
验证方式:新开一个 CMD 窗口,输入 ffmpeg -version,能输出版本信息就说明环境变量生效。如果提示不是内部或外部命令,八成是环境变量没刷新,重启终端或者注销重登一次。
3. 核心实操:登录、画质与常用命令拆解
3.1 登录态获取的两种方式
B 站很多资源需要登录才能获取高清晰度,或者根本不允许未登录下载。BBDown 支持多种登录方式,我最常用的是两种:
第一种是扫码登录。在 BBDown.exe 所在目录打开命令行,执行:
bash复制BBDown.exe -tv
命令行会打印出一个二维码,用手机上的 B 站 App 扫一扫并确认登录,程序会自动保存登录 token,之后的下载请求就会带上登录态。这个方式不用手动复制东西,体验最好,推荐优先使用。
第二种是手动复制 Cookie。浏览器登录 B 站后按 F12 打开开发者工具,切到 Network 标签页,刷新页面,随便点开一个 bilibili.com 的请求,在 Headers 里找到 Request Headers 里的 Cookie 字段,右键复制完整值。然后在 BBDown 命令里用 --cookie 参数传入:
bash复制BBDown.exe "视频链接" --cookie "你的完整Cookie"
如果不想每次手动粘 Cookie,可以把 Cookie 写进 BBDown.config.json 配置文件,路径在下载工具同目录。不过 Cookie 有有效期,过期之后需要重新获取。
很多教程让人直接抓 SESSDATA 单个字段,但新版 B 站接口对一些操作需要完整 Cookie,所以完整复制是最稳妥的方式。
3.2 画质档位怎么选
BBDown 的 -q 参数控制画质。常见几个档位我列在下面,但具体可用的档位取决于视频自身和你的登录状态:
| 参数值 | 画质 |
|---|---|
| 127 | 8K 超高清 |
| 126 | 杜比视界 |
| 120 | 4K 超清 |
| 116 | 1080P 高帧率 |
| 112 | 1080P 高码率 |
| 100 | 1080P 高清 |
| 80 | 720P 高清 |
| 64 | 720P 高帧率 |
| 32 | 480P 清晰 |
| 16 | 360P 流畅 |
如果不确定当前视频支持哪些清晰度,先跑一条探测命令:
bash复制BBDown.exe "视频链接" --info
它会列出视频的标题、分P信息、支持的所有清晰度和音轨格式。看到列表之后再传 -q 参数,不会因为选了不存在的档位而下失败。
3.3 一条命令完成下载的完整流程
最简单的下载命令就是这样:
bash复制BBDown.exe "https://www.bilibili.com/video/BV1xxxxxxxxx"
BBDown 会解析出视频信息,自动选择当前可用的最高清晰度,下载视频流和音频流,然后调用 FFmpeg 合并封装成 mp4。整个过程在命令行里会输出进度条和速度信息。
我自己的常用命令会长一点:
bash复制BBDown.exe "视频链接" -q 120 --dfn mp4 -M --sub -dd --multi 4
拆开解释:
-q 120:选择 4K 清晰度。--dfn mp4:指定封装格式为 mp4。B 站部分视频源只有 flv 格式流,这时指定 mkv 更安全,具体看提示。-M:下载视频的所有分P。--sub:同时下载 CC 字幕。-dd:下载弹幕。--multi 4:开启 4 线程并发下载,速度更快。
第一次跑通后,相当于建立了自己的下载模板,后续换链接和画质参数就能复用。
4. 进阶玩法:多P合集、字幕弹幕、文件命名与脚本化
4.1 多P视频的批量下载
B 站的合集、课程、番剧通常有多P。默认情况下 BBDown 只下载第一个分P,如果想全部下载,加 -M 参数即可。配合 --only-show 可以先列出所有分P的编号和标题,确认顺序之后再下载指定分P:
bash复制BBDown.exe "合集链接" --only-show
BBDown.exe "合集链接" -M --select-page 1,3,5
--select-page 可以挑选指定分P,序号以冒号分隔或者逗号分隔都可以。如果分P数量很大,还支持范围写法,例如 1-10 表示第1到第10P。
值得注意的一点是,B 站的番剧和课程的链接结构不同,但 BBDown 都能识别。直接用浏览器地址栏的链接即可,不需要人工转换。
4.2 字幕与弹幕的获取
做字幕或剪辑的朋友会需要文字素材。BBDown 下字幕有两种形式:
--sub 下载 CC 字幕,也就是 up 主自己上传的字幕文件,生成的是 .srt 格式,直接可以在剪辑软件里导入。--sub 还可以配合 --only-sub-txt 只下载字幕原始文本。
弹幕可以通过 -dd 下载成 .xml 格式,这是弹幕原始格式。如果要烧录成字幕样式,可以用 --dm 参数让 BBDown 把弹幕转换成 .ass 格式。转换后的 .ass 文件可以直接拖进 Aegisub、PR、剪映等工具做样式调整,也可以和视频一起封装进 mkv。
我实际对比过:--dm 转出来的 .ass 弹幕时间轴和原视频完全对齐,调整好样式后用于字幕组打轴或做 reaction 视频都很方便。
4.3 自定义输出路径与文件名
默认下载文件会输出到 BBDown.exe 同目录。想换位置用 -d 参数指定:
bash复制BBDown.exe "视频链接" -d "D:\Downloads\Bili"
文件名的默认规则是"视频标题-分P标题",如果觉得太长或者包含一些不必要的字符,可以用 --file-pattern 自定义。比如只用分P标题、不加视频总标题:
bash复制BBDown.exe "视频链接" --file-pattern "{p}"
支持的占位符很多,常用的大致有:{y} 视频总标题、{p} 分P标题、{id} 视频BV号、{n} 分P序号、{quality} 清晰度。手头有大量文件需要归档的朋友,名字规则建议一次配好,省得后续批量重命名。
4.4 配合 aria2 与批处理脚本
BBDown 内置下载速度其实已经很不错,但如果你的网络环境适合多线程、或者想边下边做其他事,可以接 aria2 外部下载器。先下载 aria2 并解压到本地目录,然后在命令里指定:
bash复制BBDown.exe "视频链接" --aria2 "D:\aria2\aria2c.exe"
这相当于把实际的下载任务交给 aria2 处理,多线程并发能力更强,大文件下载时的稳定性也更好。
如果你经常要批量下载某个 up 主的多个视频,还可以把这些命令写进一个 .bat 批处理脚本,把视频链接按行放在一个 txt 文件里,用 for 循环逐条读取并调用 BBDown。我自己的做法是维护一个 download_list.txt,每次往里加一行链接,双击 run.bat 就自动开始批量任务,下班前挂上,第二天起来看结果。
批处理的核心逻辑很简单,示例脚本并不复杂,核心就是循环读取链接然后调 BBDown 执行,但省下了大量重复输入命令的精力。
5. 真实踩坑记录:报错定位与解决方案
5.1 双击没反应或闪退
这是拿新版本遇到的第一个问题。BBDown 是命令行程序,正常使用应当在 CMD 或 PowerShell 里运行,直接双击 exe 会闪退,这是正常现象,并不是程序坏了。在 BBDown.exe 所在目录打开终端再运行,才能看到输出信息。
如果终端里运行仍然没有任何输出,优先排查 .NET 运行时。尤其是从 GitHub 下载的最新版,可能要求比老版本更高的运行时,此时去微软官网安装对应版本的 Desktop Runtime 即可。装完之后重新打开终端,再跑一次,问题一般会消失。
另一个容易忽略的点是杀毒软件。BBDown 作为命令行工具,某些杀毒软件会误报。如果下载后文件被自动隔离,可以在确认文件来源可靠的前提下,添加信任或者暂时关闭实时防护后重新下载。
5.2 提示找不到 FFmpeg
运行后报错提示无法找到 ffmpeg 或者调用 ffmpeg 失败,这是因为 BBDown 合并音视频时依赖 FFmpeg。前面说过,要么把 ffmpeg.exe 复制到 BBDown.exe 同目录,要么把 FFmpeg 的 bin 目录加入系统 Path 环境变量。
这里有个细节:修改环境变量后,已经打开的终端不会自动生效,必须新开一个窗口。如果你复制了 ffmpeg.exe 到同目录,则不需要设置环境变量,BBDown 启动时会优先查找同目录下的 FFmpeg。这个方案对新手最友好。
命令行里可以先用 where ffmpeg 验证是否能找到 ffmpeg,找不到就说明 Path 配置有问题。
5.3 登录过期与画质限制
下载时发现最多只能选到 480P,或者提示需要登录,说明当前没有有效的登录态。扫码登录保存的 token 不是永久的,过期时间取决于 B 站服务端策略。遇到这种情况,重新运行 BBDown.exe -tv 扫码一次即可恢复高画质下载权限。
也有一种情况是视频本身没有高清晰度源,比如用户投稿的原片只有 720P,那即使登录了也无法下到 4K。可以先跑 BBDown.exe "链接" --info 查看该视频实际支持的清晰度列表,避免误判为工具失效。
5.4 文件名包含非法字符导致下载失败
Windows 文件系统不允许文件名包含 \ / : * ? " < > | 等字符。B 站有些视频标题里恰好有冒号、问号、竖线等符号,BBDown 的新版本默认会清洗这些字符,但如果文件名仍然有问题,也可以借助 --file-pattern 重新制定命名规则,避免把视频标题放进文件名。
如果下载中途报错,提示类似"文件名、目录名或卷标语法不正确",优先检查下载路径和文件名命名规则。把输出路径改到比较简单的目录,比如 D 盘根目录或专门建的英文目录,能避开一大半问题。
除了上面这四种,还有一类问题是网络层面的。解析失败、连接超时、接口返回异常这类情况,和本地网络环境、当前 B 站接口状态都有关系。我的习惯是先重试一次,不行就稍微隔几分钟再跑,仍然失败就检查 BBDown 是否有新版本,GitHub 有更新时先升级再试。
最后聊一个使用习惯上的建议。BBDown 更新频率不低,B 站接口调整后,旧版本常常会失效。如果你隔一段时间没用,某天突然发现解析不了,第一件事不是怀疑网络,而是先去 Releases 页面看看有没有新版本。保持工具在最新状态,能避开许多看起来莫名其妙的报错。下载视频仅供个人学习、素材备份或符合平台规则的使用场景下参考,使用前也建议留意一下相关内容的版权约定,这个工具本身没有错,关键是每个人怎么用它。
