B站视频下载工具 BiliDownload 使用指南:从无水印4K到批量下载的完整方案
B站视频下载工具 BiliDownload 使用指南从无水印4K到批量下载的完整方案【免费下载链接】BiliDownloadB站视频下载工具项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownloadBiliDownload 是一个基于 Java 的 B站视频下载工具通过同时调用 B 站 WEB 端与 TV 端 API帮你把在线视频变成本地文件支持 360P 到 4K 的清晰度选择还能优先获取无水印视频源。无论你是想保存课程、收集素材还是离线缓存这篇文章会用一条完整的主线带你从零上手。它凭什么敢说无水印先讲个有意思的来历。项目作者曾在一个深夜看电视时发现同一个视频在电视客户端上播放右上角竟然比手机端少了一样东西——水印。这个细节催生了对 TV 端接口的逆向探索最终变成了 BiliDownload 的核心能力。原理其实不难懂程序在解析清晰度时同时访问 TV 端与 WEB 端两个接口TV 端返回的accept_watermark字段会标注哪些清晰度不带水印。检测到无水印源后它会被优先排列在清晰度列表里并打上无水印标记其他来源的清晰度则排在后面。这意味着同一部视频你往往能拿到比网页端更干净的素材。清晰度 1. 超清 4K 无水印 2. 高清 1080P 无水印 3. 高清 720P60 无水印 4. 清晰 480P 无水印 5. 流畅 360P 无水印 6. 超清 4K 7. 高清 1080P60 ...上图来自项目仓库的实际运行截图BiliDownload 在解析完成后会一次性列出所有可选清晰度编号选择即可。需要提醒的是1080P 以上的清晰度通常需要账号开通大会员或电视大会员。三分钟跑通第一次下载准备环境只需要两样JDK 8 或更高版本以及 FFmpeg 4.0用来合并音视频。然后拉取项目并打包git clone https://gitcode.com/gh_mirrors/bil/BiliDownload cd BiliDownload mvn clean package打包成功后target目录下会生成bili-download-1.3.6-jar-with-dependencies.jar启动它java -jar bili-download-1.3.6-jar-with-dependencies.jar整个下载流程是一串友好的交互问答你会经历这样几步输入一个带前缀的av号或BV号比如BV1fJ411G7N3选择登录方式WEB 二维码 / TV 二维码 / 输入 SESSDATA / 跳过查看稿件的标题、UP主、时长、播放、弹幕、点赞、投币、收藏等信息多分P视频会让你选要下载哪一集选择清晰度、下载选项视频音频 / 仅视频 / 仅音频、保存路径等进度条跑完FFmpeg 自动合并出最终 MP4如果你选了视频音频程序会先把视频流和音频流分别下载为临时文件再调用 FFmpeg 用-vcodec copy -acodec copy无损合并所以最后得到的是完整 MP4不需要你手动处理。任何一步输入*exit都能优雅退出。三种登录方式怎么选最划算这是不少人第一次使用时纠结的地方说清楚就很简单WEB 端二维码登录调用 WEB 端 API解锁网页端高清源登录后程序会显示本次所用浏览器的 UA方便你在 B 站的登录通知里核对设备。TV 端二维码登录调用 TV 端 API配合 TV 端接口去拿无水印源。输入 SESSDATA 登录在浏览器 F12 的 Cookies 里复制 SESSDATA 值粘贴进去即可适合命令行环境下没法弹窗的场景。你完全可以在一次会话里连续登录两端这样 WEB 和 TV 的高清权限同时生效。SESSDATA、TOKEN、保存路径、FFmpeg 路径这些信息确认保存后会写进工作目录下的config.yml下次启动直接免输入。两条少有人走的路批量与直连批量下载所有交互输入都可以提前写进工作目录的Input.txt程序检测到文件存在就会自动切换输入源把答案一行行读进去。你只要准备一个含多行 BV 号、分P编号、清晰度编号的文本就能实现挂机批量下载。直接下载如果你手里已经有了音视频流的完整 URL比如从调试工具里抓到的可以用直连模式跳过全部解析java -jar bili-download-1.3.6-jar-with-dependencies.jar direct http://视频流地址 D:\Downloads\成品.mp4下载完成程序会自动退出配合脚本使用就是一条自动化流水线。调试时还可以追加debug参数程序会输出每次访问的 URL 与 UA方便排查问题。config.yml 配置文件详解程序记忆的信息都存在config.yml里手动编辑同样生效sess-data: 你的SESSDATA # WEB端登录凭据 access-token: 你的TOKEN # TV端登录凭据 save-path: ~/Videos/BiliDownload # 保存路径~会被替换为用户主目录 ffmpeg-path: /usr/local/bin/ffmpeg thread-amount: 48 # 多线程下载的线程数几个值得记住的参数技巧线程数文件大于 8MB 时程序才会询问线程数。给得越大下载越快但过大容易触发 HTTP 416 错误超出服务器支持的 Range 范围官方建议量力而行。路径写法1.3.6 版本开始支持~开头自动展开用户主目录Linux/macOS 上 ffmpeg 可执行文件名不带.exe程序也能正确识别。磁盘检查合并前会先校验磁盘剩余空间是否够装下视频加音频不够会直接报磁盘空间不足不会让你白等。常见坑位避雷指南用这类工具难免踩坑提前知道能省不少时间现象原因与对策下载卡在 99% 或速度归零网络抖动导致断流程序会在 10 秒内平均速度为零时自动中断并重试多试几次即可线程开太多报 416 错误减少thread-amount比如降到 16 或 8FFmpeg 合并失败确认 ffmpeg 路径正确、文件权限正常超 4GB 左右的合并存在已知问题提示拒绝连接检查是否有残留的代理设置旧版本曾硬编码 127.0.0.1:1081 导致此问题无水印源获取失败偶尔拿不到 TV 端无水印源属于已知问题可切换清晰度或稍后重试作者也在仓库里大方公开了已知 BUG比如部分终端下进度信息会被刷新遮挡、瞬时速度可能显示为 0 等。碰到奇怪现象先别慌多半是项目已知问题而非你操作有误。顺便说一句这张报错图是项目历史版本中修复过的一个除零异常现在的版本已经不再出现。这类问题正是项目欢迎你提 issue 的地方。用实测数据说话根据仓库自带的ExampleLog.txt一次真实的 4K 下载过程是这样视频流 576.5MB程序用 48 线程并发平均速度达到19.3MB/s整个 8 分 20 秒的视频从解析到合并完成只花了 2 分多钟。项目简介里提到过 32 线程下最高可达 23MB/s实际表现取决于你的宽带和网络环境但比在线播放还快是真的。下载过程中你会看到实时刷新的进度、瞬时速度、平均速度和剩余时间体验相当直观。给轻度开发者的地图如果你想改点东西源码结构非常清爽核心就三个模块src/main/java/me/naptie/bilidownload/ ├── Main.java # 交互流程编排 ├── objects/ │ ├── Downloader.java # 多线程分块下载引擎 │ ├── Frame.java # 二维码弹窗 │ └── Panel.java └── utils/ ├── ConfigManager.java # config.yml 读写 ├── HttpManager.java # HTTP 请求与 UA 管理 ├── LoginManager.java # 登录态管理 ├── QRCodeUtil.java # 二维码生成 └── SignUtil.java # TV 端签名想自定义下载逻辑重点是Downloader.java里的分片策略和重试机制想研究无水印源的判定去看Main.java里对 TV 接口返回的accept_watermark数组的处理逻辑。项目以 MIT 协议开源欢迎提交 issue 和 pull request作者也直言程序仍然存在诸多问题这恰好是贡献者施展拳脚的空间。动手吧但请带着尊重老规矩技术的价值取决于怎么用。请把 BiliDownload 下载的内容用于个人学习、素材备份与合理研究不要二次传播或商用侵权内容尊重每一位 UP 主的劳动。现在就可以开始克隆项目、装上 JDK 和 FFmpeg、敲下那条java -jar命令把收藏夹里那部不舍得丢失的视频变成你硬盘里永不过期的资产。技术改变生活下载让知识永恒。【免费下载链接】BiliDownloadB站视频下载工具项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考