B站视频下载终极指南:bilibili-downloader 快速保存大会员4K与充电专属视频
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
出差路上信号时好时坏,收藏夹里那套只对大会员开放的4K课程却只能在线缓冲;充电支持了喜欢的UP主,专属视频看完就忘,想存下来却找不到入口;几十集的分P合集,一个个复制链接手动下载,点得手都酸了……这些困扰背后其实是同一个诉求:B站视频下载。bilibili-downloader 正是为这个诉求而生的开源命令行工具,它的目标很纯粹——把网页里"看得见"的视频,变成你硬盘里"存得下"的本地文件。
一句话定位:它是一个用 Python 写成的下载管家。你只需把账号 Cookie 和视频链接填进配置文件,剩下的识别类型、抓取最高清晰度、并行下载、自动合成,全部交给它,最后在output目录里收货有声 MP4。适合普通观众、课程学习党,以及想为喜欢的 UP 主作品做本地归档的内容创作者。
核心能力拆解
会员内容也能存:大会员4K下载的"钥匙"配置法
很多人试过"下载网页视频",结果到手只有模糊的480P——因为B站的视频地址是跟着账号权限走的,浏览器直接拿到的往往是游客权限的最低档。bilibili-downloader 的破局思路很朴素:把登录后的 Cookie 当作通行证,注入每一次请求。服务端校验通过后,会按你的会员等级返回最高可达的清晰度列表。
清晰度档位映射内置在 models/video.py 中,从"流畅 360P"一路排到"超高清 8K",其中就包括大会员专属的超清 4K(120)与杜比视界 4K(126)。下载时工具会从返回的流列表中自动选取质量最高的那一路——也就是说,Cookie 配对的那一刻,4K 就已经离你只有一条命令的距离了。
批量下载与分P合集:一条命令跑完一整季
要下载的内容往往不止一个。项目采用批量列表设计:在 config.py 的URL列表中按行填写链接,普通视频、分P视频、充电专属视频可以混在一起,程序会自动识别类型并选择对应策略。分P视频用?p=参数指定集数,不写则默认第1集:
# config.py 中的 URL 列表(示例) URL = [ 'https://www.bilibili.com/video/BV1M4411c7P4/', # 普通视频 'https://www.bilibili.com/video/BV1TnsZzHEcz/?p=2', # 分P视频第2集 'https://www.bilibili.com/video/BV12gYxz7ESf/', # 充电专属视频 ]下载策略放在 strategy/ 目录,普通视频走default.py,番剧电影走bangumi.py,运行main.py时最多同时并发下载 2 个视频,每个视频内部的音视频流再进一步并发加速,几十集的任务睡一觉起来就基本完工了。
断点续传与自动重试:大文件下载的安心机制
高清视频动辄 1GB 以上,中途断网最让人崩溃。项目在 strategy/bilibili_executor.py 里做了几层保险:
- 断点续传:利用 HTTP 的
Range请求头,文件已存在多少字节就接着从那个位置继续下,重跑不浪费; - 自动重试:单次失败最多自动重试 5 次,每次间隔 5 秒,临时性网络抖动基本能自己扛过去;
- 音视频分离合并:B站高清流是音画分离传输的,工具会并发下载视频流与音频流,再用
ffmpeg无损合并成正常的有声 MP4(机器上没有 ffmpeg 时会自动降级为内置的 moviepy 合并); - URL 规范化:自动把
BV号?p=2这类链接补全为带斜杠的形式,避免重定向丢失会员状态、清晰度被"偷偷"打回 480P。
快速上手
B站视频下载 cookie 一键获取方法(30秒)
Cookie 是整条链路里唯一绕不开的配置,好在拿到它只要 30 秒:
- 用 Chrome 或 Edge 登录 B 站,打开任意视频页;
- 按
F12打开开发者工具,切到"网络"(Network)标签; - 按
Ctrl+R刷新页面,点击列表中的第一个请求; - 在右侧"请求标头"里找到
Cookie字段,整行复制; - 粘贴到 config.py 中
COOKIE = '...'的引号内保存。
填好链接就跑:最小化安装与启动
拿到仓库后,装依赖、填链接、运行,三步走:
git clone https://gitcode.com/gh_mirrors/bil/bilibili-downloader cd bilibili-downloader pip install -r requirements.txt python main.py主程序 main.py 会先打印一份下载配置清单(待下载数量、并发模式、输出目录一目了然),随后tqdm进度条实时滚动,视频与音频并行下载。跑完后自动输出摘要:成功几个、失败几个、总耗时多少,失败的链接还会自动导出到failed_urls.txt供你下次直接重试,临时文件则被自动清理干净。
B站视频下载常见报错修复速查表
| 症状 | 原因 | 解法 |
|---|---|---|
| 一直报"无权限"或只能下到480P | Cookie 过期或已失效 | 重新走一遍获取流程,替换 config.py 中的COOKIE |
| 显示下载成功但视频打不开或没声音 | 合并环节缺 ffmpeg | 安装 ffmpeg 后重跑,合并更快更稳 |
| 番剧、电影下载失败 | 地区限制 | 确认使用中国大陆 IP 后再试 |
| 下载到一半卡住不动 | 网络波动 | 不用管,内置重试与断点续传会自动接上 |
| 分P合集文件互相覆盖 | 链接未带p参数 | 每个分P分别写成?p=1、?p=2…… |
另外提醒一句:Cookie 就是你的账号钥匙,其中的SESSDATA大约 30 天失效,届时重新替换即可。建议只在本机使用、不要随意分享,这也是 config.py 注释里特意标注"定期更换"的原因。
进阶玩法
跑通基础流程之后,还有几个值得尝试的方向:
- 整季打包:用
?p=参数把某位 UP 主的充电系列或课程合集全部写进列表,一次跑完整个系列; - 搭建个人视频库:把
output目录接入网盘或 NAS,就能跨设备随时回看,不再依赖网络; - 动手扩展:阅读 strategy/ 下的源码,理解策略模式如何根据 URL 自动路由下载逻辑,未来完全可以根据自己的需要扩展新的下载类型。
收尾
回顾一下完整闭环:拿 Cookie → 填进 config.py → 链接写进URL列表 → 执行python main.py→ 去output目录收货。大会员4K、充电专属、分P合集、批量任务,这些场景现在你都能独立搞定。
工具的价值,只有在你真正跑通一次之后才会显现。打开 config.py,把第一条你最想永久保存的视频链接填进去吧——下次想离线看的时候,你会感谢现在动手的自己。
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考