BiliDownload一步步实战:把B站视频稳稳存进本地的完整指南
【免费下载链接】BiliDownloadB站视频下载工具项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload
副标题:3步完成环境准备,从零下载第一支视频,再避开这些常见坑
BiliDownload 是一款基于 Java 的B站视频下载工具,通过调用 B 站 WEB 端与 TV 端 API,支持从 360P 到 4K 的多档清晰度选择,并优先获取无水印视频源。这篇教程会用一段真实的学习旅程,带你从环境准备、首次下载、进阶玩法一路走到原理与排错,全程配中文注释的命令示例,照做即可。
一、一个雨夜,我的收藏夹少了一支视频
上周三晚上十一点,林小满照常打开自己的收藏夹,准备复习一支讲版式设计的公开课。页面刷新后,弹出一行冷冰冰的提示:"该视频已失效。"
她愣在原地。那支视频她追更了三个月,UP主拆解了十几个真实案例,笔记都做了一半。她翻了翻聊天记录,发现群里至少有五个人转发过这支视频——而现在,谁手里都没有备份。
那天晚上她把收藏夹里剩下的两百多个视频挨个看了一遍,每一支都像随时会消失。她忽然意识到一个此前从没想过的问题:在B站,"收藏"不等于"拥有"。
你是不是也遇到过类似的场景?精心挑选的教学内容,想留到假期慢慢学;想截取一段干净的素材做二次创作,却发现画面角落里总有个水印;或者系列课程太多,只想把最需要的那几期存到本地。这时的你需要的不是一个复杂的视频网站,而是一个趁手的下载工具。
二、先说结论:这个工具到底能帮你做什么
BiliDownload 是一个用 Java 写成的命令行小工具,体积轻、跨平台,Windows、macOS、Linux 都能跑。它的定位很单纯:把你输入的 AV 号或 BV 号对应的视频,完整下载到本地。
它最拿手的三件事:
- 多档清晰度可选:从流畅 360P 到 4K 超清,按需挑选,大会员还能解锁更高画质;
- 优先无水印源:工具会同时询问 B 站 WEB 端和 TV 端的接口,如果 TV 端能给出无水印版本,就会优先列出并标注"无水印";
- 多 P 分集处理:一个合集里有十几集?它会先把每一集的标题、时长列给你,再按你的选择逐一下载。
如果只是偶尔存一两支视频,或者要给系列课程做本地备份,它都够用。当然,下载的前提是你拥有观看该视频的权限——高清晰度内容需要登录对应账号,这一点在后面的环节会反复提到。
三、出发之前,先把这三样东西备齐
工欲善其事,必先利其器。开跑之前先做个体检,下面三样缺一不可,我还附上了"为什么需要"。
| 需要准备 | 版本要求 | 为什么需要它 |
|---|---|---|
| JDK(Java 运行环境) | 8 或更高 | BiliDownload 是 Java 程序,没有它连程序都启动不了 |
| FFmpeg | 4.0 及以上 | 视频和音频是分开下载的,靠它合并成完整的 MP4 |
| 磁盘空间 | 至少留出视频体积的 1.5 倍 | 合并前会同时存在临时视频、临时音频和最终文件 |
先说一个真实教训:FFmpeg 只在你选择"视频+音频"合并时才用得上。如果你只选"仅视频"或"仅音频",不装 FFmpeg 也能跑。但既然来都来了,建议一步到位把它装上——Ubuntu 系用sudo apt install ffmpeg,macOS 用brew install ffmpeg,Windows 去官网下载后记得把目录加进系统 PATH。装好后在终端敲一句ffmpeg -version能打印版本号,就说明它上岗了。
四、第一次下载:从敲下命令到看见视频文件
环境就绪,我们开始第一次完整流程。以下每一步都给出命令和中文注释。
第一步,获取项目。打开终端,执行:
git clone https://gitcode.com/gh_mirrors/bil/BiliDownload # 克隆项目到本地 cd BiliDownload # 进入项目目录第二步,编译打包(可选,但推荐)。仓库里提供了源码,用 Maven 一条命令就能打包出可执行 Jar:
mvn clean package # 编译并打包,成功后 target 目录会生成 bili-download-1.3.6-jar-with-dependencies.jar第三步,启动程序。输入:
java -jar target/bili-download-1.3.6-jar-with-dependencies.jar # 启动交互模式第四步,跟着提示走完一次下载。程序是逐步问答式的,你只管回答,重点环节如下:
- 输入 AV 号或 BV 号——记得带上前缀,比如
BV1pK4y1N7gw。回车后程序会拉取稿件信息,显示标题、UP主、时长、播放数、弹幕数等; - 如果之前没登录过,选择登录方式——有
WEB 端二维码登录、TV 端二维码登录、输入 SESSDATA 登录三种。扫码登录最简单:选二维码方式,屏幕上弹出二维码窗口,手机B站扫码确认即可,程序每秒检查一次扫码结果; - 如果视频有多个分P——程序会把每一集的 CID、时长和标题列出来,你输入想下载的那一集的编号;
- 选择清晰度——比如
1. 超清 4K、2. 高清 1080P……按需选数字; - 选择下载选项——
1. 视频+音频(合并需要 FFmpeg)、2. 仅视频、3. 仅音频。想拿完整 MP4 就选 1,并输入 FFmpeg 所在目录(填#则跳过合并); - 输入保存路径——建议直接给绝对路径,路径不存在时程序会问你"是否新建目录";
- 确认下载线程数——文件超过 8MB 时才会问。网速一般的话填 4~8,别贪多(原因见避坑章节);
- 等待进度条走完——下载时实时显示进度、平均速度和剩余时间,完成后若选了合并,会自动生成最终文件并清理临时文件。
上面这张图就是一次真实下载过程:输入 BV 号、选好 4K 清晰度、选择视频+音频,随后看到进度、速度与剩余时间逐秒跳动。当屏幕出现下载完成的提示,去保存路径里翻一翻——你的第一支本地视频,已经在手上了。
五、过来人的三个小技巧:批量、清晰度与一键直连
走完一次流程,你已经算入门了。下面这几个技巧,是我自己踩过坑之后总结出来的,能让效率再上一个台阶。
技巧一:系列课程批量下载,提前写好"答题卡"。
程序每一步都要输入,但如果你想一次下完一个合集的十几集,可以提前把答案按顺序写进工作目录下的Input.txt文件里,每行一个输入。程序读取文件后会自动走完所有步骤,全程无需人工值守——相当于给程序递了一张"答题卡"。这个技巧特别适合系列课程:白天挂着让它慢慢下,晚上回来验收成果。
技巧二:按用途选清晰度,别总是顶格拉满。
刚开始用工具时,我习惯性选最高清晰度,结果一个 45 分钟的教程占了 4 个多 G。后来我改成按用途分流:要剪辑做二创的素材才用 1080P 或 4K,单纯预览学习用 720P 完全够看,文件体积却能小一半以上。下载前先问自己一句"这支视频我拿来干嘛",往往能省下不少硬盘空间。
技巧三:直接下载模式,适合已拿到的视频直链。
如果你手里已经有一条 B 站视频的真实直链(比如从其他工具解析出来的 m4s 地址),不需要走完整问答流程,直接用直连模式:
java -jar target/bili-download-1.3.6-jar-with-dependencies.jar direct "视频URL" "保存路径.mp4" # direct 模式:第一个参数是直链,第二个是保存文件名,下载完自动退出批量脚本里循环调用这行命令,就能把一批直链挨个存下来,非常适合做素材批量归档。
六、避坑速查:常见问题的现象、原因与修复
下面这些坑基本绕不开,我用"现象→原因→修复"的方式列成速查表,出了状况直接对号入座。
| 现象 | 原因 | 修复办法 |
|---|---|---|
| 下载进度卡住,速度一直为 0 | 网络抖动,或线程数设置过高导致服务器拒绝(报 416 错误) | 减少线程数(如填 3~4),或等待程序自动重试;仍不行就稍后再试 |
| 下载完成却提示"FFmpeg 合并失败",或文件大小为 0 | FFmpeg 未安装 / 路径没配对 / 没有执行权限 | 先敲ffmpeg -version验证;在程序里输入 FFmpeg 所在目录的准确路径 |
| 输入链接后提示解析失败、获取不到视频信息 | B 站接口临时调整,或账号登录状态过期 | 确认用最新版本;重新扫码或重新粘贴 SESSDATA 登录 |
| 某些清晰度选项不出现 | 该清晰度需要大会员权限 | 用拥有权限的账号登录,再看一次清晰度列表 |
| 二维码窗口不弹出或显示异常 | 图形环境或终端限制 | 改用"输入 SESSDATA 登录":浏览器 F12 打开开发者工具,在 Cookie 里找到SESSDATA的值粘贴进去 |
提示ArithmeticException: / by zero | 旧版本在特定场景下计算平均速度时除数为 0(多见于瞬时速度为 0 时) | 升级到 1.3.6 之后的版本,该类问题已在更新中修复 |
上图中的报错来自旧版本的一个除法异常,属于典型的"瞬时速度归零导致计算崩溃"。如果你遇到类似堆栈,先看一眼自己是不是旧版本,升级往往比排查更省事。
七、它背后的工作方式:像快递分拣和接力一样
你可能好奇,一个输入 BV 号就能出结果的小工具,内部到底发生了什么?用大白话讲,整个过程像一条分工明确的流水线。
第一步是"问路"。你给出 BV 号,程序就像打车前先查路线一样,调用 B 站的接口把视频的元数据拿回来——标题、UP主、时长、有多少分P,全都在这一步打包到手。
第二步是"领钥匙"。B 站的视频不是你想下就下的,程序得拿着你的登录凭证去换"下载通行证",也就是一条有时效的下载地址。WEB 端和 TV 端各有一把钥匙,程序两把都试,TV 端那把能开到无水印的房间,就把无水印源优先排在你面前。
第三步是"分拣与接力"。视频画面和声音在 B 站是分开存放的两份文件,程序把它们分别取回,再用 FFmpeg 像接力棒交接一样,把画面轨和音轨合并成完整 MP4。这也是为什么大文件会问你线程数——相当于把一个快递包裹拆成多份,交给几个快递员同时送,最后再拼装起来。线程越多理论上越快,但送件通道有限,塞得太满反而会撞车(也就是那个 416 错误)。
理解了这个流水线,很多操作就不难解释了:为什么登录是必须的(拿钥匙)、为什么高清要大会员(钥匙权限)、为什么选了合并就得配 FFmpeg(最后一棒是它来跑)。
八、收尾:把视频存下来,也把创作留给作者
林小满后来用这个工具把收藏夹里真正想留的视频都存了一份,还养成了"看到好内容随手归档"的习惯。那个雨夜丢失的遗憾,没有第二次发生。
工具的价值,是把"看到"变成"拥有",让优质内容不因平台波动而消失。但请记得一件事:下载的视频请仅用于个人学习、研究或备份,尊重每一位创作者的劳动成果。能用收藏表达喜爱,就不要让下载变成搬运。
最后,给你一条最简命令作为起点:
java -jar target/bili-download-1.3.6-jar-with-dependencies.jar # 启动,然后输入你的第一个 BV 号技术改变生活,下载让知识长久地留在身边。祝你下载顺利 🚀
【免费下载链接】BiliDownloadB站视频下载工具项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考