做视频这几年我写过不下十几个下载脚本最后全都败给了B站接口三天两头的改动。直到朋友把 BiliTools 这个开源项目丢给我我才终于消停了。如果你也遇到过类似场景——晚上刷到一个干货满满的教程合集第二天再点开就变成一片灰色辛辛苦苦攒下的收藏夹因为UP主删稿一夜之间空了一半想剪二创素材但手机端缓存的视频根本导不出来只能对着屏幕干瞪眼——那这篇指南就是写给你看的。BiliTools 是目前少见的开源免费跨平台 B站视频下载 工具Windows、macOS、Linux 全都能跑带图形界面也有命令行模式能下载视频、音频、字幕、弹幕甚至封面。它解决了“想把 B站视频永久留下来”这个刚需也解决了其他工具要么门槛高、要么动不动就跑路失效的痛点。无论你是想存教程的普通用户、需要扒素材的视频创作者还是负责把课程内容归档整理的内容运营这篇文章从安装到进阶、从踩坑到避雷一次给你讲透。1. 为什么你需要一款趁手的B站视频下载工具1.1 那些“说没就没”的视频错过就是真没了大概每个常年在B站冲浪的人都有过这种经历收藏夹里那个《机器学习基础》36讲在某天深夜被UP主悄悄清空某部老番版权到期整季从首页消失你关注的科技区博主因为舆论压力连夜删稿而你甚至还没来得及看第二遍。这些场景听起来有点扎心但却是常态。视频平台的内容本质上是有生命周期的UP主会退坑、会删稿、会转私有版权方会随时下架番剧和电影平台也会因为审核规则不定期锁掉一批稿件。把重要的内容本地化归档是最朴素的“用自己的手保存记忆”的方式。我自己有个习惯凡是值得反复看的教程、行业访谈、年度盘点一律下载到本地硬盘分类存好。做视频素材也需要反复看、逐帧扒网页端播放器就算有倍速和截图功能也不如本地文件用起来顺手。1.2 官方缓存真的够用吗可能有人会说B站客户端自己有缓存功能为什么还要折腾第三方工具我一开始也是这么想的直到被现实教育了一顿。B站官方客户端的缓存有几个硬伤第一缓存文件是特殊封装格式只能在B站App内播放换一台设备、换个系统就完全打不开想导入剪辑软件更是无从下手因为压根不是一个标准视频文件第二缓存会过期我记得特别清楚某次出差前缓存了几集剧集准备高铁上看结果等到打开的时候全部提示“缓存已失效”那一刻的心情只能用“血压拉满”来形容第三缓存视频对画质的控制很死板它给什么你就只能拿什么还没法单独导出音频、字幕这些文件。所以“能看”和“能永久保存到自己的硬盘里”是两码事。BiliTools 这类工具的价值就在于把B站服务器上的视频流真正拉下来封装成标准的 MP4 文件从此你想怎么用就怎么用。1.3 市面上那么多方案为什么偏偏是它聊工具之前先说说其他几个常见方案的体验。录屏是最笨的办法时间长、画质有损耗录个半小时的视频还要搭上自己电脑的性能在线解析网站则是“看着方便、用着提心吊胆”这种网站寿命普遍很短今天能用明天就挂有的还要你付费而且你把视频链接丢给它等于把自己的浏览记录也顺手交了出去风险很难评估。命令行下载工具比如 yt-dlp、you-get很强但对小白非常不友好配置文件、参数语法、Python 环境光是把环境跑起来就能劝退大部分人。BiliTools 的聪明之处在于它做了个“既要又要”的平衡底层逻辑不复杂但包装成了图形界面双击就能用同时保留了命令行参数熟悉技术的用户也能脚本化批量操作。开源、免费、跨平台三个标签叠在一起意味着它不会像那些个人网站一样突然消失出了问题社区会有人帮你解决代码也能自己审计安全性透明可查。2. 摸清BiliTools的底牌核心原理与选型逻辑2.1 开源免费跨平台到底意味着什么很多用户看到“开源”两个字的第一反应是“不要钱”但其实它的价值远不止于此。开源意味着代码完全公开你可以直接去项目仓库看它做了什么请求、传了什么数据、有没有偷偷上传你的个人信息。对于下载工具这种需要访问你账号凭据Cookie的软件这一点尤其重要——闭源工具完全可以拿着你的 Cookie 做坏事而你根本不知道。社区里的开发者也会盯着代码提意见有不合理的逻辑很快会被讨论和修正这种集体维护带来的安全感是商业闭源软件给不了的。“免费”在开源语境下更准确的说法是“不设付费墙”项目没有付费版和免费版的区分所有功能对所有人开放这个特性在下载工具这个品类里非常难得——市面上一堆挂着“免费”名头的在线解析站其实是靠广告和会员费赚钱的稳定性自然也就没有保障。“跨平台”的适用面就更实际了不少人家里是 Windows 台式机、公司是 macOS 办公本还有人折腾 Linux 服务器装一套工具三端都能用不用每换一台机器就换一个替代品学习成本直接变成零。2.2 三步走原理解析、拉流、合并虽然 BiliTools 用起来就是“复制链接—粘贴—点击下载”这么简单但背后其实是三步走的流程理解它你后面遇到问题排查起来就不慌。第一步叫解析。工具拿到你粘贴的视频链接后会先从链接里提取 BV 号B站视频的唯一身份标识然后请求B站的相关接口拿到这个视频的标题、UP主信息、分P列表以及最重要的东西——视频流地址列表。这一步相当于你告诉工具“我要这个视频”工具跑去B站服务器问“这个视频的视频流在哪、有哪些清晰度”。第二步是拉流。B站服务器会返回一组有时效性的视频流地址这些地址通常只能在有限时间内使用过期了就要重新解析。BiliTools 拿到地址后会按照你选择的画质用多线程把视频数据分段拉下来。为什么强调多线程因为单个连接下载容易跑不满带宽多线程并行能显著提速尤其是在带宽充裕的网络环境下。第三步是合并这也是很多新手最容易卡住的一步。B站为了节省带宽和防盗版现在普遍采用 DASH 协议把同一条视频流的画面轨和音频轨分开传。你可以理解为B站给你发来两个快递一个装着纯画面无声音一个装着纯声音无画面播放器端实时把它们拼起来放。你要下载到本地就必须把两个都拉下来再封装成一个完整的 MP4 文件。BiliTools 在第三步会调用 ffmpeg 这个工具来干活这也是为什么即使你用图形界面也得先把 ffmpeg 装好。2.3 为什么选型逻辑比你以为的更重要别看市面上的工具五花八门真正长期好用的都有共性。一是维护活跃。B站接口半年一小改、一年一大改去年能用的工具今年很可能全线失效一个项目如果几个月不更新基本就宣判“没法用了”。BiliTools 这类持续维护的开源项目会有社区跟着接口变化同步更新你要做的就是偶尔升级一下版本。二是有图形界面兜底。命令行工具虽然自动化空间大但对大多数人来说认认真真把一个视频下下来才是核心诉求。GUI 把复杂流程藏起来输入框、按钮、进度条任何人扫一眼就会用。三是兼容性的坑考虑得比较全。跨平台不是嘴上说说Windows 的编码、macOS 的权限安全机制、Linux 的依赖库每个系统都有各自的毛病项目把这层差异处理好了你才不用自己去折腾。3. 跨平台安装部署Windows、macOS、Linux 实测记录3.1 Windows绿色包即下即用先说最简单的 Windows。BiliTools 的发布页面提供打包好的可执行文件下载下来是一个压缩包解压后直接双击 exe 就能运行完全不需要装 Python 环境也不需要碰命令行。这一点对普通用户特别友好相当于给了你一个开箱即用的成品。我自己的经验是别把解压出来的文件丢到桌面或者下载文件夹随手一扔因为它运行后会在程序旁边生成配置文件和下载记录乱放容易东一坨西一坨。建议在某个磁盘根目录建一个专门的文件夹比如D:\BiliTools把所有文件固定放在一起后续升级直接覆盖替换压缩包里的资源即可。如果发布页面暂时没有最新的 Windows 打包版或者你想用最新代码分支那就走源码路线先装 Python 3.9 以上版本然后git clone项目仓库在项目目录里执行pip install -r requirements.txt安装依赖最后运行入口文件启动。这个流程稍微绕一点但能保证你用的永远是最新的代码。3.2 macOS 与 Linux安装细节多出一倍macOS 的情况稍微特殊一点因为要区分 Apple SiliconM系列芯片和 Intel 两种架构发布页一般会分别提供对应的安装包。第一次打开时系统会提示“无法验证开发者身份”因为这是未上架 App Store 的第三方软件需要你到“系统设置—隐私与安全性”里手动点击“仍要打开”。第一次操作之后后续再运行就不会反复提示了。另外macOS 上我吃过一个亏一开始下载的安装包架构和我的电脑对不上运行起来直接提示“无法打开”当时还以为是软件坏了折腾了半天才发现是下载错了版本。后来我学乖了下载前先看一眼自己的电脑是 M 芯片还是 Intel再到对应目录去拿包一次就对。Linux 下的安装方法和 macOS 类似可以通过源码方式运行但因为各个发行版的基础环境差异可能缺一些 GUI 依赖库最常见的提示是缺少 Qt 库或者 xcb 相关组件。遇到报错先别慌根据提示用发行版自带的包管理器把这些依赖装上就行。服务器上如果只想跑命令行模式不要求图形界面可以在启动命令里加-c之类的参数切到纯 CLI 运行这样对系统资源占用更小也好用脚本调度。3.3 ffmpeg 这个“幕后功臣”必须装对不少人对 ffmpeg 很陌生觉得它只是代码工具其实它是整个下载链路里最关键的拼图之一。没有它BiliTools 也能把视频流和音频流下载下来但合并那一步会直接失败——你会发现下载目录里躺着两个文件一个是无声音的视频另一个是只有声音的音频文件而它们合不到一起去。所以安装完 BiliTools 之后第一件事就是确认 ffmpeg 是否存在。打开终端输入ffmpeg -version能正常输出版本信息就说明已经装好如果提示找不到命令就需要手动安装。Windows 用户可以去 ffmpeg 官网下载压缩包解压后把bin目录路径添加到系统环境变量 PATH 里重开终端再验证一次。macOS 用户最简单装上 Homebrew 后执行brew install ffmpeg一行命令搞定。Linux 用户一般用发行版自带的软件包管理器装Debian/Ubuntu 系是sudo apt install ffmpegCentOS/RHEL 系则是sudo yum install ffmpeg或者dnf install ffmpeg。这一节值得专门提醒不同项目对 ffmpeg 的依赖方式和版本要求略有差异BiliTools 通常会优先寻找系统 PATH 里的 ffmpeg如果你用的是绿色免安装版本记得确认环境变量真的添加成功了而不是把目录解压了就算完事。我见过有朋友下载视频时一直报“合并失败”排查到最后才发现 ffmpeg 根本没有正确安装工具调了个寂寞。4. 基础下载实操从复制链接到成片落盘4.1 链接识别新链接、短链接还是纯BV号打开 BiliTools 的图形界面你第一个要打交道的区域就是链接输入框。粘贴进什么样的链接它都能认。最常规的是完整浏览器地址栏链接比如https://www.bilibili.com/video/BVxxxxxxxxx这种格式如果你是在手机端点击“分享”复制的短链接比如b23.tv/xxxxxx它也能自动还原出原始链接很多时候你只需要输入纯 BV 号比如BV1sN4y1F7Lc这种它也能正常解析。这个宽容度很实用省去了你手动规整链接格式的步骤。粘贴完链接点击解析按钮界面会开始请求接口。稍微等一两秒正常情况下你会看到视频标题、UP主名字、总时长、分P数量出现在列表里。这一步如果直接空白或者报错先别急很可能只是网络波动再点一次解析往往就好了第7章我会专门讲各种错误怎么排查。4.2 清晰度与格式的选择逻辑别只盯着“最高画质”解析成功之后就到了选画质这一步。B站对不同状态下的用户开放不同清晰度大体上 360P、480P、720P、1080P 这几档如果你未登录也能看到而像 1080P 高码率、4K、8K、HDR、杜比视界这些高品质选项就必须登录账号后才可能出现在选择列表里而且实际能用多少取决于你这个账号本身的权限。这里有一个很多人容易踩的误区以为自己下载“最高画质”就是最正确的选择其实并不是。4K HDR 文件体积大得惊人半小时的视频动辄好几个 GB但如果你的显示器只是个普通 1080P 屏幕那 4K 的细腻程度根本看不出多少差距反而白白浪费硬盘空间。我个人平时最常用的是“1080P 高码率”档位搭配 MP4 封装格式画质清晰度和文件体积之间比较均衡放到手机、平板、剪辑软件里也都能正常处理。格式选项上BiliTools 一般支持 MP4、FLV 这些常见封装新手无脑选 MP4 就行。遇到极端少见的封面图或者音频单独下载需求再考虑其它进阶选项。4.3 命名规则与下载路径的规划批量下载才见真功夫等片头铺垫得差不多了来聊个常被忽视但极其影响体验的细节——文件的命名和目录规划。你在设置里可以自定义文件命名模板有的版本默认是“视频标题 BV号”单下载一个文件还好一旦批量下载几十个视频这种命名方式就乱成一锅粥了。我的建议是设置成“发布者/视频标题/分P序号”这种层级结构比如“王师傅修车-第五期-发动机拆解教程”。如果你有收藏整个UP主空间的需求还可以把目录按 UP主名字分组这样以后找素材就是按作者找、按类别找而不是在一个全是无数个“哔哩哔哩”标题的文件夹里翻半天。下载路径也要提前规划。做成视频内容的人应该有体会素材文件的组织方式决定了你的后期生产效率。我是按“年份—内容类型”建目录比如D:\素材库\2026\教程类每个月再归档一次。千万不要偷懒把几百个视频全部丢进一个文件夹等到剪辑时想找一个素材那种头皮发麻的感觉真的是只有经历过的人才会懂。5. 进阶玩法实战登录、批量、字幕与弹幕全解锁5.1 登录态高画质门槛的真正解法前面提到1080P 高码率、4K 这些画质需要登录账号才能解锁。BiliTools 对登录态的接入方式通常是通过粘贴浏览器 Cookie 来完成的这样做的好处是不用单独保存账号密码也就避免了密码泄露的风险。怎么拿 Cookie打开你的浏览器登录 B站网页版按下 F12 打开开发者工具切到“网络”或者“应用/存储”面板找到 Cookie 一栏里面有一项叫SESSDATA的关键字段把它完整复制下来粘贴到 BiliTools 的设置项里即可。不同版本的界面布局可能略有差异但大体思路就是这样。粘贴完成后重启一次工具再回去看清晰度列表高画质选项就会出现了。这里必须提醒三件事第一Cookie 相当于你的登录凭证有效期一般是一个月左右过期后需要重新复制粘贴这是正常现象第二不要把自己的 Cookie 发给任何人也不要截图发到社交平台这等于把你的账号权限交到了别人手里第三不要用什么“查粉丝”“查等级”之类的第三方工具去反查别人的 Cookie也不要购买所谓“批量会员账号”去下载高画质内容这个红线碰都不要碰。5.2 批量下载合集、收藏夹、UP主主页一网打尽单个视频下载只是入门级操作BiliTools 真正的优势在批量场景。先说你最常用的一个视频有 30 个分P你不需要挨个复制 30 次链接直接在解析结果里勾选全部 P 数它就会按序排队下载。遇到合集类内容把合集页面的链接粘贴进去它能解析出整个视频列表一次勾选全部睡一觉起来整个合集已经整整齐齐躺在硬盘里了。收藏夹批量下载也是刚需。很多人平时刷视频时习惯性点收藏想整理素材时才想起来“我收藏夹里有好东西”这时候只需要把收藏夹的页面链接粘贴进 BiliTools同样可以拉取整个列表。注意这个功能依赖登录态毕竟收藏夹本身就和账号绑定未登录状态下接口是拒绝访问的。UP主主页批量就更有意思了——如果你特别喜欢某位UP主想把他的全部视频都保存下来直接把主页链接丢进来工具也能解析出他的所有作品。不过这种批量下载一定注意节制几百个视频一股脑全拖下来硬盘空间瞬间报警不说还会给对方服务器造成不必要的压力适度使用、按需保存才是健康的上网姿势。批量操作还有一个共通的注意事项并发线程数不要太贪心。图形界面设置里的“线程数”默认值往往比较保守是为了照顾大多数人的网络环境。把人家的服务器当成自己的私有 CDN 使劲薅不仅容易触发B站限流还有可能让你的 IP 被封一阵子反而得不偿失。我自己通常把线程控制在 4 到 8 之间速度完全够用也不会惹出什么麻烦。5.3 内容资产完整化字幕、弹幕、封面一个都不能少下载视频本身只是第一步把视频相关的全部“内容资产”都带回家才算完整的存档。BiliTools 在这些细节上做得比较到位。字幕方面B站稿件的字幕分两类一类是UP主自己上传的 CC 字幕另一类是平台的 AI 自动识别字幕。这两种字幕通常都能以 .srt 或 .json 格式下载下来。做双语学习、做听写练习、给视频重新配字幕的人这个功能非常有用。弹幕是B站文化的灵魂但弹幕文件本质上是 XML 格式的时间轴数据直接下载下来打不开。这里有个小技巧先让 BiliTools 把弹幕下载成 XML 文件再用弹幕格式转换工具把它转成 ASS 字幕格式这样你用本地播放器播放视频时就能看到那种流式弹幕效果甚至能自定义样式。如果你还想把弹幕“印”进画面里也就是压制弹幕把 ASS 文件作为字幕轨交给剪辑软件或者 ffmpeg 处理就可以了。封面下载容易被忽略但对资讯转载、封面收藏、视频笔记整理来说原图封面的分辨率远比网页截图清楚特别适合做封面合集的资料收集。除此之外有些版本还支持单独下载音轨输出为 m4a 或 mp3做电台节目素材、听外语内容练习听力时只拖音频不拖视频省空间又省时间。6. 配置文件与命令行把下载工具用成生产力6.1 命令行参数速查适合脚本控的自动化之路图形界面适合日常使用但如果你有批量任务定时执行的需求命令行模式才是效率天花板。BiliTools 的命令行参数设计得比较清晰常见用法如下BiliTools -u https://www.bilibili.com/video/BVxxxxxxxxx -q 1080p -o /path/to/output这条命令的意思很直白-u后面跟视频链接-q指定清晰度-o指定输出路径。如果你需要登录高画质下载一般会在命令里带上 Cookie 参数或者读取配置文件的方式想要控制下载线程数就额外加线程参数比如BiliTools -u https://www.bilibili.com/video/BVxxxxxxxxx -q 4k --thread 8 --with-subtitle--with-subtitle会在下载视频的同时把字幕一起拉下来。具体参数的名称和写法可能会随版本而变但看项目的帮助命令执行BiliTools -h就能看到当前版本支持的所有参数说明照着写就不会出错。这种命令行方式对内容团队特别有用。比如你今天要把新发布的一批视频归档写一个简单的循环脚本把链接列表文件丢进去脚本自动挨个执行下载任务全程不需要人盯着还能把日志输出到文件里方便追踪while read url; do BiliTools -u $url -q 1080p -o /mnt/video_library/$(date %Y%m) done daily_links.txt6.2 配置文件一套参数走天下多套预设灵活切如果你觉得每次都在命令行里敲一长串参数很麻烦配置文件就是为你准备的。BiliTools 运行后会在用户目录下生成一个配置文件里面保存了下载路径、默认画质、线程数、Cookie 等各项设置。你完全可以把它当作“默认模板”把常用参数写进去之后命令行只要写链接就能启动下载。更高级一点的玩法是维护多套预设。比如我做视频期间会有两种主要场景一是下载别人的教程做参考画质要求不高但能快速预览我就用“预览预设”二是为剪辑项目收集素材必须保证高画质和完整字幕我就用“素材预设”。把这些差异放在几个不同的配置文件里要用哪套就通过启动参数指定哪套。这里还要提一个数据备份的细节配置文件里存着你的 Cookie 信息和下载偏好换电脑重装系统前记得把整个配置目录备份带走这样新机器上装好工具配置一导入所有个性化设置全部回来不用从头再折腾一遍。7. 常见问题排查与避坑手记实测经验整理7.1 解析下载阶段的典型问题在实际使用的这半年里我遇到和帮朋友解决的问题可以整理成下面几张表建议收藏遇到对应情况直接对照处理。现象常见原因解决办法粘贴链接后点击解析界面空白或报错网络波动、接口临时抽风稍后重试一次多数情况第二次就成功提示“视频不存在”或404稿件已被UP主删除、转为私有、因违规被锁确认稿件状态换还有效的视频源清晰度列表里没有1080P以上选项未登录或未配置Cookie按5.1节方法登录并重新解析下载一段时间后速度归零触发了B站接口限流降低线程数暂停几分钟再继续有个细节很多人会忽略B站对未登录的访客请求限制更严格所以哪怕只是下 720P登录后再下载也比裸连更稳。整体来说下载速度受制于两个因素——你到B站服务器之间的链路质量以及B站给你的临时带宽配额。这些都不是工具本身能改变的遇到“速度慢”先别急着怪工具从自己的网络和账号状态入手排查反而更快。7.2 合并与输出的典型问题现象常见原因解决办法下载完成但目录里只有分离的音视频文件ffmpeg 未安装或未加入 PATH按3.3节重新安装并验证提示“封装失败”或“合并失败”ffmpeg 版本过旧或磁盘空间不足更新 ffmpeg清理磁盘后重试视频播放正常但无声音音频轨下载失败或合并中断删除残留文件重新下载该视频磁盘空间这条值得单独说。下载一个半小时的 1080P 视频大概需要 1 到 2 GB 空间但 DASH 下载过程中会同时存视频轨和音频轨两份临时文件合并完成后才释放也就是说峰值占用可能是成片体积的两倍。批量下载前先看一眼磁盘剩余空间别等到“磁盘已满”弹出来才发现问题。另外一个容易踩的坑是文件残留。合并失败的时候BiliTools 通常会保留已经下载好的视频轨和音频轨文件方便你排查。这时候直接在队列里重新下载会浪费时间更好的做法是手动把这两个残留文件用 ffmpeg 手动合并一次。命令长这样ffmpeg -i video.m4s -i audio.m4s -c copy output.mp4-c copy的意思是直接复制流不重新编码速度快且不损失画质几十秒就能搞定。7.3 长期好用的一些“非技术性建议”用下载工具时间久了你会发现决定工具好不好用的往往不是某个功能而是整体使用习惯。第一保持工具更新频率适度。B站接口变化很快旧版工具随时可能失效每隔一两个月去项目的 Releases 页面看一眼有没有新版本有就顺手升一下。升级前注意看看更新日志有的版本会改变配置文件格式升级后第一次启动可能要做些适配动作别直接把旧配置覆盖掉。第二批量下载前先小批量试跑。我刚上手收藏夹批量下载时一口气勾选了三百多个视频结果因为设错了目录路径全部下载到了系统盘直接把 C 盘塞满那次教训给我留下了很深的印象。正确做法是先勾选一两个视频跑通全流程确认画质、命名、目录都没有问题再放开手去批量处理。第三合理评估“囤积”的价值。很多人下载完就再也不看了整个视频躺在硬盘里吃灰。我不是劝你少下载——恰恰相反存档本身是好事——但在把收藏夹全部拖下来之前先想想这些内容将来怎么用、要存多清晰、要不要带弹幕字幕。把预算花在真正需要的文件上下载完顺手重命名、归档让它们成为你内容库里能被调用的一环这才是这套工具能发挥最大价值的地方。8. 最后分享几个我自己的实操体会BiliTools 用了大半年最大的感受是这种开源下载工具最可贵的不是功能多牛而是它能成为一个“正常人能用得动”的入口。我见过太多光鲜的工具功能列表长得吓人结果环境配置就把人折磨得死去活来。BiliTools 把技术门槛压到了最低同时把技术上限留得够高——普通用户用 GUI自动化用户走 CLI需要深度定制的开发者也欢迎去 fork 改进。这种“上下通吃”的设计才是它真正的好用之处。最后再分享一个小技巧如果你在下载某个视频时发现画质只有“流畅”一档可选不要急着认为是工具的问题先去网页端打开同一个视频看看作为游客你能看到什么画质。如果你未登录状态只有 360P那么工具再聪明也没办法绕过B站给自己的接口策略。想下高画质老老实实登录自己的账号这才是稳定可靠的唯一路径。希望这篇指南能帮你把自己的 B站素材库搭起来。如果你在实操中碰到别的坑或者摸索出什么新玩法欢迎在评论区共享——开源工具的乐趣就在于大家遇到的坑互相知道了走着走着路就平了。
