多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

BiliTools保姆级教程:开源B站下载工具从入门到进阶

BiliTools保姆级教程:开源B站下载工具从入门到进阶 1. 为什么是BiliTools2026年还在折腾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。LinuxDebian/Ubuntusudo apt install ffmpegFedora 系用sudo dnf install ffmpeg。装完后在终端输入ffmpeg -version能打印出版本信息就是成功了。注意不要用 Windows 应用商店里那种只有几 MB 的精简版合并高码率视频时经常直接报错退出坑过无数人。2.2 下载 BiliTools三种安装姿势BiliTools 的安装方式相当灵活我按推荐顺序给你排一下直接下载预编译包最推荐去 GitHub Releases 页面根据系统选择bilitools-win-x64.zip、bilitools-macos-arm64.tar.gz或bilitools-linux-x64.tar.gz。解压后就是一个可执行文件不用安装扔到任意目录就能跑。包管理器安装适合喜欢命令行的玩家macOS 用户执行brew install bilitools部分 Linux 发行版的 AUR 仓库里也有Arch 用户可以直接yay -S bilitools。Windows 用户如果装了 Scoop执行scoop install bilitools同样可行。源码编译适合折腾派项目用 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 判断下载成功的三个标准很多人看到“下载完成”四个字就觉得万事大吉。我的习惯是再检查三件事文件能不能顺利播放——用系统自带的播放器打开一遍拖动进度条确认没有卡顿或花屏音频视频是否同步——重点看说话的口型字幕/弹幕文件是否生成——如果加了--sub目录里应该有.xml或.ass格式的文件。前两个是硬指标第三个取决于需求。整套流程走完你就算正式入门了下一步可以进入进阶玩法。4. 进阶操作Cookie 登录、最高画质与弹幕字幕导出4.1 为什么不登录就只能看 360PCookie 怎么配B站对部分视频的清晰度限制很强非登录状态下很多投稿最高只能拿到 360P 或 480P。即便你用的是下载工具只要没有携带登录凭证接口返回的也是低清流。解决办法就是给 BiliTools 配置 Cookie。拿到 Cookie 的方法很简单用浏览器打开 bilibili.com 并登录自己的账号按 F12 打开开发者工具切到“网络”Network面板刷新页面随便点开一个视频请求在请求列表里找到任意一条链接点开“请求头”区域找到cookie:开头的那一段整段复制。然后在终端里执行bilitools config set cookie SESSDATAxxx; bili_jctxxx; buvid3xxx;更推荐的方式是写成配置文件。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.txtlinks.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 过期或者不完整。我先说下排查顺序重新复制一次完整 Cookie覆盖配置中的SESSDATA和bili_jct确认系统时间是否准确——时间偏差超过几分钟B站的接口会直接拒绝部分高清视频还会校验RefererBiliTools 一般自动处理但如果你用代理抓包工具干扰了请求头也可能触发 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站的接口逻辑。希望这份指南能帮你少走几步弯路享受把喜欢的内容稳稳握在手里的踏实感。
返回列表