ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

BiliDownload一步步实战:把B站视频稳稳存进本地的完整指南

BiliDownload一步步实战:把B站视频稳稳存进本地的完整指南

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 程序,没有它连程序都启动不了
FFmpeg4.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 # 启动交互模式

第四步,跟着提示走完一次下载。程序是逐步问答式的,你只管回答,重点环节如下:

  1. 输入 AV 号或 BV 号——记得带上前缀,比如BV1pK4y1N7gw。回车后程序会拉取稿件信息,显示标题、UP主、时长、播放数、弹幕数等;
  2. 如果之前没登录过,选择登录方式——有WEB 端二维码登录TV 端二维码登录输入 SESSDATA 登录三种。扫码登录最简单:选二维码方式,屏幕上弹出二维码窗口,手机B站扫码确认即可,程序每秒检查一次扫码结果;
  3. 如果视频有多个分P——程序会把每一集的 CID、时长和标题列出来,你输入想下载的那一集的编号;
  4. 选择清晰度——比如1. 超清 4K2. 高清 1080P……按需选数字;
  5. 选择下载选项——1. 视频+音频(合并需要 FFmpeg)2. 仅视频3. 仅音频。想拿完整 MP4 就选 1,并输入 FFmpeg 所在目录(填#则跳过合并);
  6. 输入保存路径——建议直接给绝对路径,路径不存在时程序会问你"是否新建目录";
  7. 确认下载线程数——文件超过 8MB 时才会问。网速一般的话填 4~8,别贪多(原因见避坑章节);
  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 合并失败",或文件大小为 0FFmpeg 未安装 / 路径没配对 / 没有执行权限先敲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),仅供参考

返回列表