BilibiliDown:轻量的B站视频下载工具
BilibiliDown 是一个用 Java 写的 B 站视频下载器,目前在 GitHub 上收获了 4,912 个 Star。它的定位很明确:把 B 站视频下载到本地,操作简单,跨平台支持。
跨平台,开箱即用
BilibiliDown 基于 Java 开发,Windows、Linux、macOS 都能跑。只要系统装了 JRE 1.8 以上版本,下载 jar 包就能直接启动。不需要编译流程,也不用折腾依赖环境。
软件界面走的是实用路线,功能入口清晰。主界面列出了视频下载、弹幕下载、UP 主批量下载等几个核心模块,上手几乎没有学习成本。
功能覆盖得比较全
单个视频下载是最基础的操作。输入 BV 号或者视频链接,工具会自动解析视频信息,包括标题、封面、分P列表,然后拉取最高画质的视频和音频流,最后用 ffmpeg 合并成 mp4 文件。
批量下载同样是刚需。想收藏某个 UP 主的全部视频,输入 UP 主 ID 就行,BilibiliDown 会遍历所有投稿逐一拉取。番剧和收藏夹也支持批量下载,一次操作,静候完成。
弹幕下载算是个特色功能。BilibiliDown 能把视频弹幕单独导出为 XML 或 ASS 格式,做弹幕分析或者视频二创的用户会用到这个。
还有一个实用的细节:支持手动选择画质和编码格式。用户可以根据硬盘空间和网络情况,自己决定下载什么规格,不用总是拉取最大文件。
登录和 Cookie 机制
BilibiliDown 支持扫码登录。登录后 cookie 明文保存在 config 文件夹下的 cookies.config 文件中。作者在 README 里特别提醒了这一点,有安全顾虑的用户可以直接删除这个文件,或者通过软件内的退出登录功能清除。
为什么需要登录?B 站很多 1080P 以上画质的视频需要登录身份才能获取播放地址。不登录的话,部分视频只能下载较低画质。要不要登录,完全由用户自己权衡。
技术实现的几个点
视频合并依赖 ffmpeg。短片段 flv 可以直接拼接,但多 flv 合并以及 m4s 转 mp4 时需要 ffmpeg 出场。作者对 ffmpeg 做了定制编译,只保留必要的编解码器,有效缩小了程序体积。
链接二维码生成用了 zxing 库,扫码登录功能就靠它。验证码处理这块,B 站的 geetest 验证码是绕不开的环节,作者参考了 geetest-validator 项目的实现。cookie 刷新功能的实现比较有意思,逆向了一部分 WebAssembly 代码,参考了 SocialSisterYi/bilibili-API-collect 项目中提供的方案。
整个项目遵循 Apache 2.0 协议开源,引用的第三方库也都标注了各自的许可类型。
适合谁用
如果你经常需要离线观看 B 站视频,不管是通勤路上、出差途中,还是单纯想收藏某些可能被下架的视频,BilibiliDown 都能满足需求。
做视频二创的用户也常用这类工具。下载素材、提取弹幕做分析,配合剪辑软件完成自己的作品。
工具本身是中性的,怎么用取决于使用者。下载的内容请遵守平台协议和版权规定,不要用于商业用途或二次分发。
小结
BilibiliDown 是一款功能完整、跨平台支持的 B 站视频下载工具。Java 开发、开箱即用,近 5,000 个 Star 说明它在同类工具中口碑不错。项目基于 Apache 2.0 开源,代码透明度高,有安全顾虑的用户可以自行审查。