1. 环境准备:Windows x64平台的前置条件
1.1 运行时依赖:.NET 环境是第一步
在Windows x64平台折腾BBDown,第一道坎就是运行时环境。BBDown是基于.NET开发的命令行工具,不同版本对运行时要求不一样,旧版本依赖. NET 6.0 Runtime,新版本则已经全面转向. NET 8.0。刚开始用的时候我没注意这茬,一运行直接报错,提示找不到运行时,当时还以为是下载的包有问题。
解决办法很简单,去微软官方下载中心拿对应版本的.NET Desktop Runtime x64安装包装上就行。这里有个容易踩的坑:不少人的电脑上装了. NET Framework,但BBDown需要的是. NET Core/5+的Runtime,这俩不是一回事。你在命令行输入dotnet --info查看已安装版本,如果提示找不到dotnet命令,那就是没装对。建议直接装. NET 8.0 Runtime x64版本,因为新版本BBDown已经强制要求. NET 8了,而且装新不装旧,将来升级工具也能用。
提示:装完运行时如果还报错,重启一次终端再试。Windows的环境变量不会自动刷新,我在首次配置时就因为这个问题白折腾了十分钟。
1.2 下载与解压:拿到正确的包
BBDown发布在GitHub上,找Releases页面下载就行。Windows x64平台直接拿win-x64版本的压缩包,文件名一般长这样:BBDown_xxx_win-x64.zip。有个细节要说明:目前BBDown主仓库版本迭代慢,但是社区有一个比较活跃的fork,界面更好看,命令行输出也更清晰,功能上还多了一些修复,比如对海外IP的支持优化。
下载完压缩包后,解压到一个固定目录,比如D:\Tools\BBDown。这个路径最好别有中文和空格,不然以后写脚本批处理调用时会遇到各路报错。解压后确认里面有个BBDown.exe文件就算到位了。
还有一个小建议:把BBDown.exe所在目录加到系统PATH环境变量里。这样以后在任意目录下直接输入BBDown就能调用,不用每次都输完整路径。操作路径是:右键此电脑 → 属性 → 高级系统设置 → 环境变量 → 双击Path → 新建 → 填入你的解压路径。操作完后同样重启终端。
1.3 验证基础运行:第一次成功启动
环境搞定了,先做一次最小化验证。打开cmd或PowerShell,输入:
bash复制BBDown --version
如果输出版本号,说明工具能正常跑;如果提示BBDown 不是内部或外部命令,检查PATH配置;如果提示缺dll或运行时错误,检查. NET 安装。我个人习惯用Windows Terminal来做这些操作,颜值高且支持多标签,比老旧的cmd体验好不少。
这里顺带说一个判断x64环境的快速方法:在cmd里输入echo %PROCESSOR_ARCHITECTURE%,输出AMD64就说明是x64系统。大部分情况下,近十年内买的电脑都是x64,但偶尔还是会有读者在ARM架构设备上装Windows(比如骁龙X系列),这种设备必须单独下载对应的arm64版本,虽然我把下载链接给你了,不过建议在x64上体验会更好。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础操作:从单视频下载开始
2.1 支持的内容类型:不只是普通视频
BBDown最值得称道的一点是覆盖面广。普通B站视频(包括分P合集)、番剧、电影、纪录片、UP主投稿、课程、短剧都能下载。它内部自动识别不同类型的视频ID格式,调用对应的接口解析数据。实际使用下来,绝大多数情况下只需把视频链接粘进去,剩下全自动。
举个例子,下载一个普通视频:
bash复制BBDown https://www.bilibili.com/video/BV1xx411c7mD
下载一个分P合集,比如某个总共30P的系列课程:
bash复制BBDown https://www.bilibili.com/video/BV1xx411c7mD -p 1-30
下载某个UP主的所有视频:
bash复制BBDown https://space.bilibili.com/123456789/video
这个空间页面的下载支持在列表页直接传入UP主UID,工具会自动拉取所有投稿并依次下载,非常适合批量备份某个喜欢UP主的优质内容。我实测一次下载了某个教学UP主两百多个视频,只要网络不波动,基本稳定。
2.2 清晰度选择:不要默认直下
初次使用BBDown,直接跑默认命令其实不是最优解。默认清晰度取决于你的cookie登录状态——不登录,最高可能只拿到480P;登录了,能拿1080P;如果有大会员,且登录了大会员账号,才能解锁1080P高码率、4K、8K以及杜比音效等资源。
拿1080P以上的清晰度有两种方式:一是直接在URL后加参数,二是修改配置文件写死默认清晰度。命令行方式如下:
bash复制BBDown "https://www.bilibili.com/video/BV1xx411c7mD" -tv --dfn "4K 1080P 高清"
参数含义:
-tv:以TV端身份获取播放地址,能绕过部分清晰度限制--dfn:指定清晰度优先级,空格分隔多个候选
如果账号有大会员权限,更推荐直接指定--dfn "杜比 4K 1080P",音画质都追求极致。不过要注意,杜比音效仅在大会员账号下能下,而且部分视频源本身就不提供杜比音轨,这时候参数会自动降级为普通音轨,不影响成片。
2.3 下载格式:MP4还是FLV,选哪个
B站视频流的封装格式主要有MP4和FLV两种,BBDown也提供两者可选。默认情况下,普通视频与番剧大多能直接拿MP4格式;但某些特殊情况(比如高清码率下的分段流),原平台用的是FLV封装。
命令行中这样控制格式偏好:
bash复制BBDown "https://www.bilibili.com/video/BV1xx411c7mD" --dfn "4K" --video-mp4
--video-mp4表示优先用MP4容器封装;--video-flv则是强制FLV。绝大多数播放器、剪辑软件都对MP4更友好,而且MP4封装支持关键帧随机定位,视频拖动进度条不会卡顿。FLV在老旧浏览器时代流行,如今除了特殊流协议,实际选MP4就对了。
这里有个重要提醒:BBDown下载时会把视频流和音频流分别拉取,两者是分开的,本地需要一个合并工具(FFmpeg)将二者封装进同一个文件。只要你的PATH里能找到ffmpeg,BBDown会自动调用它完成合并;找不到则只输出分离的音视频文件,这一点我们后面还会细讲。
2.4 多P下载与任务并行:效率翻倍
BBDown默认单线程逐一下载多个分P。遇到几十P的视频,默认速度不算差,但如果网络较好,完全可以开启并行下载来提速:
bash复制BBDown "https://www.bilibili.com/video/BV1xx411c7mD" -p 1-30 --multi-thread
--multi-thread开启后,BBDown会并行拉取多个视频分P的数据流。实测同一个30P的网课视频,默认模式下耗时约12分钟,开启4线程并行后能压缩到5分钟左右。但并行下载对网络稳定性要求更高,如果网络质量一般,反而可能出现某个线程反复重试、整体卡住的情况。网络不太稳定的场景,我一般只开2线程,或者直接不用并行。
此外,-p参数还支持子集模式,比如-p 1-5,8,12-15表示下载第1到5集、第8集、第12到15集,灵活组合很方便。对有选择性下载需求的读者,这一招很好用。
3. 登录与会话:解锁高清资源的钥匙
3.1 为什么必须登录:从匿名到大会员的差距
B站接口对不同身份等级返回的播放地址清晰度上限不同。未登录状态下,我实测最高只给到480P(极个别视频允许720P);登录普通账号后,能解锁1080P;大会员账号则可以请求4K、杜比音效与高码率版本。
这意味着,如果你下载目的是长期收藏、剪辑素材,那么必须至少登录一个普通账号;追求最高画质,就得大会员登录。BBDown的登录方式很简单,命令行下直接输入:
bash复制BBDown login
执行后工具会弹出一个二维码图片(终端里显示字符二维码,或者自动打开图片查看器)。用手机B站App扫码确认登录,成功后BBDown会将Cookie保存到本地账号配置文件中。下次运行会自动携带登录态,不用反复登录。二维码过期了就重新执行一次login命令,不麻烦。
注意:登录产生的Cookie相当于你的账号凭证。不要把BBDown生成的
BBDown.data文件发给别人,否则对方可以用你的身份请求播放地址,虽然B站的风控会拦截异地异常,但能避免的麻烦尽量规避。
3.2 手动导入Cookie:更稳妥的备用方案
扫码登录偶尔会失败,比如二维码图片无法加载、终端编码乱、扫码后无响应等。这时候我会手动导入Cookie。
流程是这样的:先打开浏览器,登录B站网页版,按F12打开开发者工具,切到Network标签页,随便点一个视频或刷新页面,在请求列表里找到www.bilibili.com的请求,点击后在Headers里找到Cookie:请求头,复制整段cookies值。然后在BBDown命令行执行:
bash复制BBDown login -c "SESSDATA=xxxx; bili_jct=xxxx; DedeUserID=xxxx"
把引号里的内容替换成你刚复制的Cookie串。注意B站的具体Cookie字段包括SESSDATA、bili_jct、DedeUserID这三个关键值,复制时别漏。完成后可以下载一个你原本无法获取高清的视频测试能否成功。
这个方法还有个好处:当某些地区版权限制导致无法播放某些番剧时,通过浏览器操作+Cookie导入能规避部分限制问题,但这属于平台的区域策略,这里不做展开说明。
3.3 Cookie失效问题:为什么BBDown用着用着突然只能下低清
账号Cookie是有有效期的,B站一般在几个月到半年之间刷新一次,如果修改过密码或触发风控,Cookie立即失效。特征很典型:明明之前能下1080P,某天开始BBDown提示需要登录/清晰度下降。解决办法很简单——重新执行BBDown login扫码刷新。
另外,B站偶尔会对异常请求进行验证码拦截,这时BBDown会报错或下载失败。保持账号活跃、不要频繁切换IP或短时间内大量下载,能减少触发风控的概率。我自己下载大规模合集时的习惯是:控制下载量,隔一段时间暂停一会儿,不要太暴力的连续请求。
4. 配置与合并:让输出更符合个人习惯
4.1 FFmpeg配置:没有它就只能拿到分离文件
前面提到过,BBDown把视频流和音频流分开下载,需要FFmpeg合并。没装FFmpeg,输出目录里会出现_video.m4s和_audio.m4s两个文件(或者类似命名),这种文件大部分播放器无法直接播。
FFmpeg的安装:去FFmpeg官网下载Windows x64版本,解压后将bin目录加入系统PATH。验证安装:
bash复制ffmpeg -version
能正常输出版本信息就说明环境OK了。这里有个建议:下载BBDown时顺便把FFmpeg的完整版安装包(不是essentials版)准备好,因为完整版包含FFmpeg的所有常用组件,后续处理音频、转码等需求都能用上。
4.2 写配置文件:常用参数一劳永逸
BBDown支持通过配置文件预设默认参数。实际使用中,每次下载都敲一长串参数毕竟麻烦,用配置文件会省心很多。
首次运行BBDown后,在其目录下会生成一个BBDown.json配置文件。打开能看到类似这样的结构:
json复制{
"DefaultDownloadPath": "D:\\Bilibili",
"DefaultThreads": 4,
"DefaultDfn": "1080P",
"DefaultVideoCodec": "hevc",
"UseAria": false,
"SaveSubtitle": true
}
几个关键项的调整建议:
DefaultDownloadPath:设置默认下载目录,改成你自己喜欢的路径DefaultThreads:并行下载线程数,x64平台建议4,网速好可以到8DefaultDfn:默认清晰度,填你账号能支持的最高档DefaultVideoCodec:优先选择的视频编码,可选avc(兼容性最好)、hevc(压缩率高,但老设备可能不支持)、av1(画质压缩比最高,但需要较新的硬件解码)SaveSubtitle:是否自动下载字幕,设为true后会自动拉取CC字幕
配置文件改完保存,下次运行BBDown时参数自动生效。如果某个视频想临时覆盖配置,命令行的参数优先级更高,可以随时指定。
4.3 输出目录结构:批量下载时的文件组织
单视频下载,BBDown默认把文件放到配置的目录下;批量下载多P视频,它会在目录下创建按视频标题命名的子文件夹,文件名形如P01_标题_1080P.mp4。这个命名规则对整理收藏非常友好,但有一类情况要注意:如果视频标题里包含Windows文件名非法字符(如\ / : * ? " < > |),BBDown会自动替换掉,处理逻辑还算稳妥。
另外,在BBDown.json里还能设置--sub-file-template "{{ episodeTitle }}"之类的模板规则。初级用户不需要折腾这些,默认就够用;想构建个人媒体库的进阶用户,可以研究下模板变量,定制自己的文件命名规则。
5. 常见问题与排查技巧实录
5.1 报错速查表
我把实际使用中高频遇到的问题整理成一个速查表,遇到报错先对号入座:
| 报错/现象 | 可能原因 | 解决方案 |
|---|---|---|
| 提示找不到. NET运行时 | 未安装对应版本. NET Runtime | 安装. NET 8.0 Runtime x64 |
| 提示无法解析URL | 链接格式不对 | 检查是否包含BV号/Av号/EP号 |
| 下载后只有m4s文件 | 缺少FFmpeg | 安装FFmpeg并加入PATH |
| 清晰度始终只有480P | 未登录或Cookie失效 | 执行BBDown login重新登录 |
| 下载过程中断/反复重试 | 网络不稳定或触发了风控 | 降低线程数,等待一段时间再试 |
提示--dfn参数无效 |
清晰度值拼写有误 | 使用4K、1080P、720P等标准名称 |
| 无法下载番剧/电影 | 版权地区限制 | 需要确认账号有对应观看权限 |
| 启动报错0xc000007b | VC++运行库缺失 | 安装VC++ 2015-2022 x64运行库 |
这个表是从无数次实践里踩坑总结出来的,基本覆盖了90%以上的启动阶段问题。遇到诡异问题,把报错信息完整复制出来去搜索引擎查,多半能搜到同样踩坑的人的解决方案。
5.2 下载速度不理想:几个加速方案
BBDown本身通过多线程下载单文件,理论上可以打满带宽,但实际受限于B站服务端的单连接限速。提升下载体验的几个有效手段:
第一,开启并行下载分P(--multi-thread搭配合理的线程数),多P齐下自然更能压榨带宽。第二,在配置里调整DefaultThreads到8,单P视频内部也会分块拉取。第三,使用较新版本的BBDown,新版对接口调用和断点续传的优化更到位。
如果下载大文件时中途断了,BBDown支持断点续传,再次运行同一命令会自动检测已有文件并继续下载,不需要重新开始。这个细节非常实用,尤其是几百MB的大视频,网络一旦波动不至于前功尽弃。
5.3 弹幕与字幕:视频之外的附加内容
BBDown不仅能下视频,还能把弹幕、字幕一起抓下来。弹幕默认导出为XML格式,可以用弹弹play等播放器加载播放;字幕默认导出为SRT或JSON格式。命令行指定:
bash复制BBDown "https://www.bilibili.com/video/BV1xx411c7mD" --sub --danmaku
弹幕与字幕的下载由--sub和--danmaku参数控制。对需要二次创作、学习UP主翻译的读者,这个功能很有价值。字幕文件是文本,方便搜索和提取;弹幕XML则可以保留原汁原味的看片氛围。
另外值得一提的是,BBDown对分P视频的字幕处理是按P单独存放的,不会互相覆盖。批量下载课程时,字幕文件会和视频文件放在一起,方便对照学习。
6. 脚本化与批量下载:让工具变成生产力
6.1 批处理脚本:一键下载多个视频
BBDown是命令行工具,天然适合脚本化。一次性下载多个不同视频,可以写一个简单的批处理脚本:
bat复制@echo off
chcp 65001 >nul
cd /d D:\Tools\BBDown
call BBDown.exe "https://www.bilibili.com/video/BV1xx411c7mD" --dfn "1080P"
call BBDown.exe "https://www.bilibili.com/video/BV1yy411c7mE" --dfn "1080P"
call BBDown.exe "https://www.bilibili.com/video/BV1zz411c7mF" --dfn "1080P"
echo 全部下载完成
pause
把上述内容保存为download.bat,双击就能顺序执行。因为使用了chcp 65001,中文路径和视频标题不会乱码。脚本化的意义在于,你可以把日常重复的下载任务固化成模板,不用每次手动输长命令。
6.2 利用配置文件做定时任务:自动追更下载
进阶用法是结合Windows任务计划程序,定时自动下载某个合集的新增分P。思路如下:写一个脚本,先检查本地已有文件名,再去BBDown拉取列表,只下载还没存在的那几P。虽然BBDown没有内置增量下载开关,但配合文件系统判断可以实现类似效果。
简单版脚本思路:
bat复制@echo off
cd /d D:\Tools\BBDown
BBDown.exe "https://space.bilibili.com/123456789/video" --dfn "1080P" --only-parse
--only-parse可以只解析列表而不实际下载,方便你观察哪些内容还没下。结合计划任务每周跑一次,就能维持视频库的更新。不过这种用法更适合对命令行有基础的用户,初级用户建议还是手动操作,避免脚本误删文件。
6.3 配合其他工具:打造个人流媒体库
BBDown下载的视频是标准MP4文件,可以直接扔进NAS、Jellyfin、Plex这类媒体服务器里播放。配合支持硬解的播放器,4K高码率视频也能流畅播放。个人实践:把BBDown的下载目录直接映射为Jellyfin的媒体库路径,下载完成后刷新媒体库,电视上直接看,整个流程非常顺滑。
下载视频的命名规则决定了媒体库能否正确刮削海报与元数据。BBDown默认命名包含标题和清晰度,例如P01_标题_1080P.mp4。如果Jellyfin识别不到,可以用BBDown的模板重新命名文件,或者在Jellyfin里配置对应的命名规则检测。这块细节不多,但一旦搭好了,效果非常爽。
7. 常见误用与正确姿势
7.1 不要把命令行工具当成图形软件
BBDown是命令行工具,没有图形界面。有部分用户总是希望找一个GUI壳子来包裹它,社区里确实有一些第三方GUI项目,但维护情况参差不齐。对于绝大多数下载需求,命令行其实比GUI更高效——可以批量、可以脚本化、可以远程操作。我见过有用户把BBDown的命令写进Telegram机器人里,远程发送链接就能触发下载,这就是命令行工具的威力。
7.2 注意平台差异:别拿着x64包在ARM设备上装
x64版本的BBDown不能在ARM64 Windows设备上直接运行。当前主流PC基本是x64架构,但部分新出的轻薄本、二合一设备可能采用ARM架构(比如骁龙芯片的Windows设备)。判断方法很简单,cmd输入:
bash复制echo %PROCESSOR_ARCHITECTURE%
如果是ARM64,去下载arm64版本的BBDown包。BBDown官方Release里同时提供win-x64和win-arm64两种包,按需选择。这个坑在国内用户群体里还比较少见,但随着ARM Windows设备增加,值得注意。
7.3 善用官方文档与更新日志
BBDown的命令行参数一直在演进,老版本的一些参数名和默认行为与新版本不一致。遇到新功能不知道怎么写参数,直接看BBDown --help,输出里会列出所有可用参数和简要说明。另外关注GitHub的Release说明,能第一时间了解新版本修复了哪些问题。我每次升级版本后都会跑一两个小视频测试,确认没有回归问题再用于批量任务,这个习惯帮我避免了很多麻烦。
8. 写在最后:小技巧分享
分享两个我实际操作中总结出来的小技巧。
第一个是关于文件整理的。BBDown下载完成后,可以用一条简单的PowerShell命令把指定日期之后创建的文件自动移动到按月份分类的子目录中:
powershell复制Get-ChildItem "D:\Bilibili" -Filter "*.mp4" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) } | Move-Item -Destination "D:\Bilibili\本周下载" -Force
虽然不是BBDown本身的功能,但搭配使用后视频库整洁度大幅提升。
第二个是断点续传的妙用。有时候下载大视频中途网络断了,BBDown并不会每次自动重试到成功。此时重新运行一次完全相同的命令,它会检测到已完成的分片并继续下载,速度很快。不要因为一次失败就删除文件重下,那样浪费时间且消耗流量。
我在实际使用中发现,BBDown对Windows x64平台的适配已经非常成熟,只要环境配好、登录状态正常、FFmpeg就位,它就能稳定地输出高质量视频文件。尤其是对需要备份B站优质内容、离线学习课程或建立个人媒体库的用户,这个工具可以说是不二选择。希望这篇操作记录能帮你少走弯路,顺利把BBDown跑起来。
