10分钟搞定B站4K视频下载:bilibili-downloader 免费开源完整教程
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
bilibili-downloader 是一个基于 Python 的开源 B站视频下载 工具,核心作用只有一个:把你账号有权限观看的视频——包括大会员 4K 清晰度和充电专属内容——完整保存到本地硬盘。它不走浏览器插件的旁门左道,而是用你登录后的 Cookie 直接请求 B站接口,权限和你在网页上看到的一模一样,所以会员高清画质、分P合集、批量链接都能稳定落地。全文按"装依赖 → 配 Cookie → 跑下载"的顺序展开,看完照着敲命令即可。
三步完成安装并跑出第一条视频
整个项目依赖非常轻量,Python 3.8 及以上版本就能跑,requirements.txt 里锁定了 4 个库:httpx 0.23.1(异步请求)、beautifulsoup4 4.9.3(页面解析)、moviepy 1.0.3(音视频合并)、tqdm 4.66.5(进度条)。
- 获取代码仓库:
git clone https://gitcode.com/gh_mirrors/bil/bilibili-downloader- 进入目录并安装依赖:
cd bilibili-downloader pip install -r requirements.txt- 直接运行主程序:
python main.py首次运行不需要任何额外操作,config.py 里自带了一份示例URL列表。程序启动后会先打印一段配置摘要(待下载数量、并发模式、输出目录),然后逐条处理视频:进度条实时显示音视频流的下载速度与百分比,合并完成即得到 MP4,最后输出一张包含成功数、失败数和总用时的摘要。
配置登录 Cookie 的完整方法(解锁4K的关键)
免费视频不填 Cookie 也能下,但想拿到会员 4K 和充电专属视频,必须让程序"登录"你的账号。Cookie 只需要配置一次,SESSDATA有效期约 30 天,到期后按同样流程换一遍即可。
分四步获取:
- 用 Chrome 或 Edge 打开B站并登录你的会员账号,随便点开一个视频页面
- 按
F12(或右键"检查")打开开发者工具,切到"网络"(Network)标签 - 按
Ctrl + R刷新页面,在请求列表里点第一条请求 - 在请求头(Headers)里找到
Cookie字段,把整段值复制下来
打开 config.py,把COOKIE = '...'里的占位内容替换成刚才复制的整段 Cookie,保存。
接下来把要保存的视频链接填进同一个文件的URL列表,链接格式有讲究:
# 普通视频 'https://www.bilibili.com/video/BV1xx123456', # 分P视频:在链接后加 ?p=2 表示只下第2P 'https://www.bilibili.com/video/BV1xx654321?p=2', # 充电专属视频:链接和普通视频没区别,靠 Cookie 识别权限 'https://www.bilibili.com/video/BV1xx789012',再次执行python main.py即可。下载过程中如果某条失败,它的地址会自动追加到项目根目录的failed_urls.txt,方便你排查后整批复制回去重试。
一张清单看懂它的能力边界
| 场景 | 表现 |
|---|---|
| 大会员 4K / 高清 1080P | 取决于你的账号权限,有就下对应档位 |
| 分P合集视频 | 自动解析?p=N参数,成片按标题_P2.mp4命名 |
| 充电专属视频 | 配好 Cookie 后与普通视频同样处理 |
| 批量多链接 | URL 列表无数量上限,自动排队并发下载 |
| 下载中断 | 依据临时文件大小发 Range 请求,从断点继续 |
| 失败重试 | 单条流最多自动重试 5 次,仍失败才记入清单 |
| 临时文件 | 全部下载完成后自动删除temp目录,不留缓存 |
代码组织也很清楚:入口是 main.py,链接解析与下载执行集中在 strategy/bilibili_executor.py,普通视频与番剧分别走 strategy/default.py 和 strategy/bangumi.py,清晰度档位定义在 models/video.py。想改逻辑,直接看这几个文件。
高阶技巧:并发、断点与输出目录
- 调整并发数:main.py 中
max_concurrent默认为 2,即最多同时下 2 个视频(每个视频内部音、视频流也是并发拉取)。网速够快可以调到 3~4,但并发太高容易触发限流 - 断点续传:下载写入
temp目录,中途中断后重跑同一列表,程序会读取已有临时文件的字节数并携带Range头续传,不用从头再来 - 指定保存位置:修改 config.py 里的
OUTPUT_PATH即可把成片输出到外接硬盘或 NAS 路径 - 番剧/电影:strategy/bangumi.py 仍处于测试阶段,且接口要求中国大陆 IP,非大陆网络环境下不建议使用
谁用得上它,以及使用建议
- 课程学习者:把整季教程按 P 全部缓存,断网环境也能连续学习
- 素材整理者:批量存下参考视频做对比剪辑,一次排队省掉逐条操作
- 离线观影需求:出行前把追的番剧提前拉满,地铁、飞机上都能看
一个实用的节奏建议:Cookie 每 28 天左右换一次,配合failed_urls.txt每周清一次失败清单,基本可以保持长期稳定运行。
常见问题解答
问:明明有会员,为什么下出来不是4K?先确认复制 Cookie 时账号确实处于大会员登录状态;其次部分视频本身没有 4K 源,程序能拿到的就是接口返回的最高档位,摘要里会打印实际清晰度,可据此判断。
问:下载总是失败或提示权限不足,怎么处理?九成是 Cookie 过期。重新走一遍上面的四步,把新的SESSDATA换进COOKIE字段再试;长期使用的账号建议每月例行检查一次。
问:合并后的视频没有声音,播放器也打不开?这是音视频合并环节缺 ffmpeg 的表现。在系统里安装 ffmpeg 并加入 PATH(程序会优先调用它做合成),播放器推荐 VLC 或 PotPlayer 验证。
问:能不能一次贴几百个链接?可以。URL 列表没有数量上限,程序按信号量限流排队,结束后给出完整的成功/失败统计,失败条目落盘到failed_urls.txt。
现在就备份你的第一条4K视频
bilibili-downloader 把下载B站视频压缩成三个动作:换 Cookie、贴链接、跑python main.py。不用研究接口、不用处理反爬,十分钟级别就能把第一条视频稳稳存进硬盘。
最后提醒一句:下载内容请仅用于个人学习和离线备份,尊重UP主的创作劳动,不要二次传播或用于商业用途。使用中有 Bug 或新需求,欢迎到项目仓库提交 Issue 反馈,一起把这个工具打磨得更好用。
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考