☰
BiliTools保姆级教程:开源B站下载工具从入门到进阶
2026/9/26 4:48:21 网站建设 项目流程

1. 为什么是BiliTools:2026年还在折腾B站下载的刚需

1.1 大部分人的真实场景:不是“在线看不了”,而是“想离线留一份”

做博主这些年,我被问得最多的其实不是“怎么剪视频”,而是“怎么把B站视频下载下来”。问的人里有想剪二创的剪辑新手,有想存素材课件的老师,还有纯粹怕 UP 主删稿的老观众。

B站这几年的清晰度已经卷到 4K、8K,弹幕文化和评论区同样是内容的一部分。在线看当然没毛病,可一旦遇到下面这几种情况,你就必须有个靠谱的下载工具:

  • 想截取某个 UP 主视频里的几秒钟作为创作素材,总不能对着屏幕录屏;
  • 通勤路上信号差,想先缓存到本地再慢慢看;
  • 收藏夹里几千个视频,有些冷门投稿随时可能因为版权或者作者删除而消失;
  • 需要把某个系列课程逐集保存,方便离线反复学习。

浏览器插件我最早也用过,但普遍有两个毛病:一是视频源稍微变一下解析就挂,二是下载到一半弹窗让你买会员。那些号称“万能下载器”的商业软件就更别说了,捆绑广告、隐私收集、强制升级,安全性完全不可控。折腾一圈之后,我现在固定用的就是开源工具,其中BiliTools是综合体验最好的一个。

1.2 BiliTools 是什么,它到底解决了什么问题

BiliTools是一个基于 Rust 开发的开源 B站下载工具,同时提供命令行(CLI)和图形界面(GUI)两种形式,支持 Windows、macOS、Linux 全平台运行。它不是那种“抓网页源代码”的野路子工具,而是按照 B站公开接口逻辑去请求视频、音频、弹幕、字幕等资源,然后再用 FFmpeg 把音视频流合并成标准 MP4 文件。

换句话说,BiliTools 做的事跟你在网页端播放视频时浏览器做的事差不多,只不过它是把数据流落盘保存下来。项目完全开源,代码在 GitHub 上,更新频率稳定,没有付费墙,没有隐藏广告。对创作者和普通观众来说,这个安全性上的优势是任何闭源工具都比不了的——至少你能清楚看到它有没有偷偷上传你的隐私、有没有在网络层动手脚。

如果你是第一次接触这类工具,我建议把 BiliTools 和界面友好的同类开源工具都装一下对比看看。实测下来,BiliTools 的解析成功率、下载速度、画质保留程度都很顶,尤其是在处理分P视频、番剧整季和直播录制这几个高频场景上,确实有碾压级的体验。

2. 开工前的准备:不管你是 Windows、macOS 还是 Linux,先把环境搭对

2.1 一条 FFmpeg 就能避免 80% 的合并问题

新手最容易忽略的依赖就是FFmpeg。B站目前的视频和音频流在多数情况下是分离存储的,也就是说你下载下来的“视频文件”可能只有画面没有声音,需要 FFmpeg 负责把两者封装成一个完整的 MP4。很多人在论坛里发帖说“BiliTools 下载的视频没声音”,十有八九是 FFmpeg 没装好,或者装了某个版本不全的精简包。

安装方式很简单:

  • Windows:去 ffmpeg.org 下载官方 Windows 构建版,解压到一个纯英文路径,比如C:\ffmpeg,然后把C:\ffmpeg\bin加进系统环境变量 PATH。
  • macOS:打开终端执行brew install ffmpeg,没有 Homebrew 的先去装 Homebrew。
  • Linux(Debian/Ubuntu):sudo apt install ffmpeg,Fedora 系用sudo dnf install ffmpeg。

装完后在终端输入ffmpeg -version,能打印出版本信息就是成功了。注意:不要用 Windows 应用商店里那种只有几 MB 的精简版,合并高码率视频时经常直接报错退出,坑过无数人。

2.2 下载 BiliTools:三种安装姿势

BiliTools 的安装方式相当灵活,我按推荐顺序给你排一下:

  1. 直接下载预编译包(最推荐):去 GitHub Releases 页面,根据系统选择bilitools-win-x64.zip、bilitools-macos-arm64.tar.gz或bilitools-linux-x64.tar.gz。解压后就是一个可执行文件,不用安装,扔到任意目录就能跑。

  2. 包管理器安装(适合喜欢命令行的玩家):macOS 用户执行brew install bilitools;部分 Linux 发行版的 AUR 仓库里也有,Arch 用户可以直接yay -S bilitools。Windows 用户如果装了 Scoop,执行scoop install bilitools同样可行。

  3. 源码编译(适合折腾派):项目用 Rust 写的,需要本机有 Rust 工具链。克隆仓库后执行cargo build --release,编译产物在target/release/bilitools。好处是你永远跑在最新版,坏处是首次编译可能要等很久。

装完验证一下:终端执行bilitools --version,能输出版本号就说明 OK。顺带提一句,BiliTools 还提供一个 Web 管理界面,监听本地端口,用浏览器操作下载任务,类似一个轻量级下载服务器。这个后面对批量下载场景特别有用,我会在后面的章节展开讲。

3. 第一次下载:请跟着我把第一个视频完整跑通

3.1 最简单的一条命令

打开终端,进入你希望保存视频的目录,执行:

bilitools get "https://www.bilibili.com/video/BV1xx411c7mD"

就这样。BiliTools 会自动解析网页链接里的 BV 号,请求视频信息,列出所有可用的画质和格式,然后默认选择最高清且兼容性最好的 H.264 编码流下载,最后调起 FFmpeg 合并音视频。

我第一次跑这个命令的时候,看到终端里刷刷刷打出进度条,一度以为是卡住了。实际上那是在多线程并发拉流——BiliTools 默认会开启多个下载线程,每个分片独立写入临时文件,整体流程跟一般下载器很不一样。

下载完成后目录里会多出一个以BV号-标题命名的文件夹,里面是视频.mp4和音频.m4a,以及合并完成后的最终.mp4。这里解释一下:同时保留音视频分离文件是工具的有意设计,方便那些需要单独使用音轨做混剪的用户,但如果你不想要这些中间产物,可以在参数里加--clean,完成后自动删除临时文件。

3.2 基本参数一览:改画质、改目录、改命名

光会用默认配置还不够,我整理了一份高频参数表,建议直接抄作业:

参数作用示例
-o/--output指定输出目录bilitools get <url> -o ~/Downloads/bili
-q/--quality指定画质,如 1080p、4k-q 1080p
--codec强制编码格式,可选 h264/hevc/av1--codec hevc
-p下载整个分P列表bilitools get <url> -p
--audio-only只下音频bilitools get <url> --audio-only
--video-only只下视频画面bilitools get <url> --video-only
--sub同时下载字幕和弹幕bilitools get <url> --sub
--clean完成后清理中间文件bilitools get <url> --clean

这里单独说下-q 1080p的坑:B站很多高分辨率视频需要登录状态才能选,如果你没配置 Cookie,强制指定-q 4k大概率会解析失败,工具会自动回退到可用画质并给出提示。这不是 Bug,而是平台限制,解决办法放在下一章讲。

3.3 判断下载成功的三个标准

很多人看到“下载完成”四个字就觉得万事大吉。我的习惯是再检查三件事:

  1. 文件能不能顺利播放——用系统自带的播放器打开一遍,拖动进度条,确认没有卡顿或花屏;
  2. 音频视频是否同步——重点看说话的口型;
  3. 字幕/弹幕文件是否生成——如果加了--sub,目录里应该有.xml或.ass格式的文件。

前两个是硬指标,第三个取决于需求。整套流程走完,你就算正式入门了,下一步可以进入进阶玩法。

4. 进阶操作:Cookie 登录、最高画质与弹幕字幕导出

4.1 为什么不登录就只能看 360P,Cookie 怎么配

B站对部分视频的清晰度限制很强:非登录状态下,很多投稿最高只能拿到 360P 或 480P。即便你用的是下载工具,只要没有携带登录凭证,接口返回的也是低清流。

解决办法就是给 BiliTools 配置 Cookie。拿到 Cookie 的方法很简单:

  1. 用浏览器打开 bilibili.com 并登录自己的账号;
  2. 按 F12 打开开发者工具,切到“网络”(Network)面板;
  3. 刷新页面,随便点开一个视频请求;
  4. 在请求列表里找到任意一条链接,点开“请求头”区域,找到cookie:开头的那一段,整段复制。

然后在终端里执行:

bilitools config set cookie "SESSDATA=xxx; bili_jct=xxx; buvid3=xxx;"

更推荐的方式是写成配置文件。BiliTools 会在用户目录下生成一个bilitools.toml,你直接编辑它,把cookie字段填进去即可。注意 Cookie 是有有效期的,尤其是SESSDATA,可能几周到几个月不等。失效的典型表现是:下载时报“权限不足”或画质回退,这时候重新去浏览器复制一次,覆盖配置就行。

4.2 登录之后,如何吃到你能达到的最高画质

登录后就可以放心上参数了。我的经验是:

bilitools get <url> -q 4k --codec hevc --sub --clean

这条命令的意思是:尝试 4K 画质,优先 HEVC 编码,同时下载字幕弹幕,结束后清理中间文件。

这里有个需要科普的概念:同样是 4K,编码不同文件大小差异巨大。HEVC 在同等画质下比 H.264 体积小 30% 左右,AV1 又比 HEVC 进一步压缩。但编码越新,兼容性越差,老设备可能放不了。BiliTools 默认选 H.264 就是因为兼容性最好。如果你确定自己的播放器支持 HEVC,就加上--codec hevc;追求极致体积再考虑 av1。

还有个小技巧:-q后面不只是画质,也可以指定--codec av1配合--audio-only或者DTS音轨。B站某些影视区视频带杜比音效,你在参数里能看到类似杜比音效的音频选项,直接选上就行,下载后音质确实比普通 AAC 好一截。

4.3 弹幕和字幕:B站文化的另一半不能丢

B站视频的灵魂一半在弹幕。BiliTools 对弹幕的支持非常完整:

  • 默认导出原始 XML 弹幕格式,可用弹幕工具二次处理;
  • 支持把弹幕转换成 ASS 格式并内嵌到视频中,实现“永久弹幕”;
  • 支持“AI 字幕”和“CC 字幕”的下载,适合做外挂字幕。

具体用法是在下载时加--sub,或者单独跑一条命令:

bilitools danmaku <url> --format ass

如果你是做剪辑的,我强烈建议把 ASS 弹幕文件和视频素材一并留档。因为弹幕本身就是 B 站社区生态的一部分,很多视频的“梗”都在弹幕互动里,光留视频不留弹幕,回头复盘时内容是不完整的。

5. 番剧、课程与直播场景:这才是 BiliTools 的生态位

5.1 一次下载整季番剧和整套课程

单集下载是基本功,真正拉开差距的是批量场景。

Bilibili 的番剧页面 URL 通常长这样:

https://www.bilibili.com/bangumi/play/ep123456

直接把这个地址丢给 BiliTools,它会识别出这是番剧信息页,默认询问你要下整季还是单集。加上--all参数就是整季下载:

bilitools get "https://www.bilibili.com/bangumi/play/ss12345" --all

同样的逻辑也适用于课程区。很多知识区 UP 主会把自己的付费课程放在 B站“课堂”频道,那个页面也是多集结构。用 BiliTools 拉取整门课时,它会按集数命名文件,并自动带上章节号,目录结构非常清晰:

课堂名称/ 01-第一讲.mp4 02-第二讲.mp4

不用自己手工排序,强迫症福音。

5.2 批量下载多个链接:写进文件里排队处理

当你手里有一堆散装链接时,一个个执行命令太蠢了。BiliTools 支持从文件读取链接列表:

bilitools batch -f links.txt

links.txt里每行一个链接,工具会按顺序逐个解析下载,并且支持断点续传。下载中断后重新执行同一命令,已经完成的任务会被跳过,不会重复下载。

更进阶的用法是启动内置 Web 管理服务:

bilitools web --addr 127.0.0.1:8080

浏览器打开http://127.0.0.1:8080就是一个漂亮的可视化下载面板。你可以把几十个链接一次性丢进队列,在网页上拖动调整优先级,实时看速度曲线。配合树莓派或者 NAS 部署,这就是一个家庭媒体采集中心。

5.3 直播录制:从开播自动录到下播

直播录制是我个人最喜欢的功能。BiliTools 支持直接录制直播流,关键特性是:

  • 指定直播间 ID,开始拉流录制成 FLV 文件;
  • 检测到直播结束自动停止;
  • 配合--loop参数可以持续监听,开播后自动开始录,下播自动停止;
  • 支持分片时长设置,比如每 60 分钟自动切割一个文件,避免单个文件过大。

用法示例:

bilitools live --room-id 123456 --auto --chunk 60

按我自己录了半年直播的经验,默认配置基本稳。唯一要注意的是磁盘空间——B站直播码率普遍在 2~4 Mbps,录制一小时大约 1~2 GB,我建议录之前先df -h看一眼剩余空间,别录了一半硬盘满了一脸懵。

6. 踩过的坑与几个能救命的排查姿势

6.1 HTTP 403 报错:不是工具挂了,是凭证不对

最频繁遇到的问题就是下载时报403 Forbidden。出现这个状态,80% 是 Cookie 过期或者不完整。我先说下排查顺序:

  1. 重新复制一次完整 Cookie,覆盖配置中的SESSDATA和bili_jct;
  2. 确认系统时间是否准确——时间偏差超过几分钟,B站的接口会直接拒绝;
  3. 部分高清视频还会校验Referer,BiliTools 一般自动处理,但如果你用代理抓包工具干扰了请求头,也可能触发 403。

如果以上都试过还是 403,去 GitHub Issues 搜一下错误关键词,大概率是官方接口调整导致旧版本失效。这时候直接更新到最新版通常就解决了。这就是开源工具的优势,修复速度快到你反应不过来。

6.2 视频下载后没声音:FFmpeg 版本背锅

前面说了,B站视频流和音频流分离。BiliTools 下载完会调用 FFmpeg 合并。如果你的 FFmpeg 是精简版或者太老,合并时可能静默失败,留下两个没合并的文件,看起来就像“视频没声音”。

排查命令:

ffmpeg -version

如果版本号很老,或者输出里缺少libmp3lame、libx264等库,直接换成官方 full 版本。合并后播放一下,有声音就收工。

还有一个小概率情况:有些视频本身就没有音轨。B站对纯音乐投稿有时会保留无音轨的版本,这时候别怪工具,用播放器确认一下原视频是不是本来就静音。

6.3 中文路径和文件名长度:Windows 用户的血压时刻

我在 Windows 上跑 BiliTools 时遇到过几次“操作无法完成”的错误,最后定位到是两个原因:

  • 输出目录路径带中文,个别终端环境的代码页不支持,导致路径解析出错;
  • 某些视频标题特别长,加上弹幕文件名后超过 Windows 260 字符路径上限。

解法也很粗暴:路径尽量用纯英文目录;标题过长时给 BiliTools 开启--short-name选项,用 BV 号加序号作为文件名。如果你在用 NAS 或 Linux 做下载机,就没有这些问题,这也侧面说明了为什么很多人喜欢把 BiliTools 部署在 Docker 里跑。

6.4 弄清楚“能下载”和“可以下载”的边界

最后想认真聊几句很多人避而不谈的事。B站视频本质是创作者的劳动成果,下载工具只是技术手段,不代表你有权随意传播。我的个人使用原则很明确:

  • 下载自己购买过课程的备份,可以;
  • 下载视频用于个人学习、剪辑练习、本地收藏,合理;
  • 把下载的视频重新上传到其他平台,或者扒了别人的付费内容去传播,不建议,风险也是自己承担。

BiliTools 本身并不绕过任何付费墙,登录 Cookie 能拿到什么画质,取决于你的账号真实权限。大家用这个工具时,多尊重一下原创内容的价值,自己用没问题,别做伤害创作生态的事。

7. 一些零碎但实用的经验补充

最后再分享几个小细节,都是我自己长期使用攒下来的。

一是关于下载时机的选择。B站晚高峰(20点到23点)接口压力大,多线程拉流时偶尔会出现某几个分片超时,表现为进度卡在 99%。遇到这种情况不用慌,重新执行一次命令,断点续传会帮你把缺的部分补完。

二是关于硬解和转码。如果你下载的是 4K HEVC 视频,记得检查播放器是否支持硬解。Windows 上推荐用 PotPlayer 或者 VLC 最新版,macOS 上用 IINA,否则 4K 视频可能会掉帧到没法看。这锅不该 BiliTools 背,是播放链路的问题。

三是关于更新频率。开源工具的生命力在于迭代,建议每隔一两周就去 GitHub Releases 看一眼有没有新版本。我有一阵子偷懒没更新,结果碰到一次 B站接口调整,旧版完全无法解析。更新之后问题秒解。如果你想第一时间收到更新,直接点 Watch 仓库的 Release 通知即可。

四是可以考虑部署 Docker 版。如果你的主力机器是 Windows,但又不想常驻一个命令行窗口,可以用 Docker 把 BiliTools 装成常驻服务,配合 Web 面板在局域网内随时提交下载任务。这样你白天在公司想看什么视频,只需把链接丢到面板里,晚上回家视频已经躺在 NAS 上了。配合自动化脚本甚至可以做到定时订阅番剧更新,这个玩法解放双手,相当自在。

工具是死的,用法是活的。BiliTools 的潜力取决于你愿意花多少心思去研究它。从入门到精通,核心就是多跑命令、多看文档、多了解 B站的接口逻辑。希望这份指南能帮你少走几步弯路,享受把喜欢的内容稳稳握在手里的踏实感。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询