免费下载B站大会员4K视频和充电专属内容,一个开源工具全搞定:bilibili-downloader使用指南
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
"这段视频我明明充了大会员,为什么想缓存下来却只能看480P?"——深夜十一点,同事阿凯在群里发了这句话,配上一张模糊得只能看清字幕的截图。他想把一位UP主的充电专属教程存到本地慢慢啃,却发现手机App的缓存既不能导出、又会在会员过期后自动失效。那一刻我突然意识到:在B站,"收藏了"从来不等于"拥有了"。
今天要聊的开源工具bilibili-downloader,就是专门解决这个问题的:免费、开源、支持大会员4K清晰度下载,还能保存充电专属视频,把"看过"变成"永久拥有"。
为什么你收藏的视频,常常等于"没收藏"
先别急着安装,我们花三十秒看看旧方法到底卡在哪。过去你想离线缓存一个B站视频,通常只有三条路:
- 用录屏软件边播边录——4K视频录完,硬盘多了一个10GB的"伪4K",音画还经常不同步;
- 找在线解析网站——要么要收费,要么下载下来的画质被压缩到没法看;
- 开大会员用官方缓存——缓存文件加密且绑定设备,会员一过期全部作废,充电专属内容更是压根不让缓存。
bilibili-downloader 直接绕开了这些死胡同:它用你自己的Cookie以本人身份去请求视频流,拿到的是与账号权限完全一致的清晰度——大会员能看到4K,它就能下载4K;UP主设置了充电专属,它也能原样保存。
| 对比维度 | 传统方法(录屏/解析站/官方缓存) | bilibili-downloader |
|---|---|---|
| 大会员4K视频 | 录屏画质损失或直接失败 | ✅ 完整保留4K/杜比视界/8K清晰度 |
| 充电专属内容 | 无法缓存 | ✅ 支持下载 |
| 分P合集 | 一集一集手动操作 | ✅ 自动批量处理,一次跑完 |
| 下载速度 | 单线程,1:1实时录制 | ✅ 异步并发,音视频同时拉取 |
| 使用成本 | 付费工具或高价会员 | ✅ 完全免费开源 |
| 操作复杂度 | 多步骤反复折腾 | ✅ 改两个配置项,一行命令 |
说白了,它把"下载B站视频"这件事,从一场持久战变成了一条流水线。
把Cookie变成你的下载钥匙
很多人卡在第一步就放弃了,因为搞不懂Cookie是什么。别慌,你只需要理解一句话:Cookie是你登录B站的数字身份证,工具拿着它去要视频流,B站才会"认出"你是大会员,才肯给你4K权限。
获取流程大概需要一分钟:
- 用浏览器登录B站,打开任意一个视频页面;
- 按
F12(或右键→检查)打开开发者工具,切到"网络/Network"标签; - 按
Ctrl+R刷新页面,在请求列表里点第一个请求; - 在右侧请求头的
cookie字段里,把整串值复制下来。
拿到Cookie后打开项目里的config.py,找到COOKIE = '...',把引号里的内容替换成你自己的就行。
⚠️ 贴心提醒:B站的
SESSDATA大约30天会过期。建议在日历里设个每月提醒,过期后重新复制一次即可。另外,Cookie属于敏感信息,别随手发到群里或贴进公共文档。
三分钟跑通第一个下载任务
环境方面只需要 Python 3.8 及以上,依赖就四个库:httpx(异步请求)、beautifulsoup4(解析页面)、moviepy(合并音视频)、tqdm(进度条)。安装方式:
git clone https://gitcode.com/gh_mirrors/bil/bilibili-downloader cd bilibili-downloader pip3 install -r requirements.txt接着还是在config.py里,把你想下载的视频链接填进URL列表。几种常见写法学一下就会了:
URL = [ # 普通视频 'https://www.bilibili.com/video/BV1xx123456', # 分P视频:只下第2集,在链接后加 ?p=2 'https://www.bilibili.com/video/BV1xx654321?p=2', # 充电专属视频,直接贴链接即可 'https://www.bilibili.com/video/BV1xx789012', ]然后运行:
python main.py接下来你会在终端里看到这样的画面:每个视频先显示标题和当前清晰度,然后音视频两个进度条同时往前跑,下载完自动合并、自动清理临时文件,最后给你一张包含用时和保存路径的"下载摘要"。
默认视频会保存在项目根目录下的output文件夹,想换位置的话,改config.py里的OUTPUT_PATH一行即可。
像囤剧一样批量囤课:分P与并发实战
普通视频的下载没什么悬念,真正让这个工具拉开差距的,是批量场景。
假设你收藏了一部 26 集的纪录片合集,或者想备份某位UP主的整套系列教程。你不需要一集一集手动找链接——把每一集的URL都塞进URL列表(或者用?p=1、?p=2……这种形式指向同一个视频的不同分P),工具会自动给每个分P生成标题_P1.mp4、标题_P2.mp4这样的文件,互不覆盖,一次跑完。
它的内部实现也值得夸一句:下载器用asyncio信号量限制并发数,默认同时跑 2 个视频;而每个视频内部,画面流和声音流又是并行拉取的——也就是说,下载一个1080P视频时,视频轨和音频轨同时在下,速度比串行快接近一倍。
如果网络环境好,想跑得更快,可以把main.py里max_concurrent = 2调成3或4。注意循序渐进,并发太高容易被B站限速,反而得不偿失。
三个"别人不知道"的进阶细节
第一,URL要"规范"才能保住4K。项目里内置了一个URL规范化逻辑:如果链接是BVxxxxxx?p=2这种"少个斜杠"的写法,访问时会触发B站重定向,导致会员状态丢失、清晰度掉回480P。工具会自动帮你把链接改写成BVxxxxxx/?p=2再请求。所以从网页复制链接时,尽量保留完整格式,别手删参数。
第二,失败不白跑。下载中途断网、超时?不用担心,每个请求内置了最多5次自动重试,退避等待后继续拉。如果某个视频最终失败,程序会把它的URL单独写进项目根目录的failed_urls.txt,你只需要把里面的链接复制回URL列表再跑一次,不用大海捞针去翻日志。
第三,装个ffmpeg能省一半时间。合并音视频时,工具会优先调用系统里的ffmpeg(流式复制,几乎秒合);没有ffmpeg时才退回moviepy转码合并。前者是"直接粘合",后者是"重新压制"。建议提前装好ffmpeg,下载完成后的等待时间会从几分钟缩到几秒钟。
高频问题快答
Q1:下载失败提示"需要登录或会员权限"?一句话结论:Cookie失效或没填对。重新按上面的步骤复制最新Cookie替换进config.py,再跑一次。
Q2:为什么我下载到的不是4K,而是1080P?一句话结论:Cookie对应的账号没有大会员权限,或链接被重定向降级了。确认账号已开通大会员,并用完整的视频链接(带/和?参数)填入。
Q3:番剧和电影能下载吗?一句话结论:项目内置了番剧策略(strategy/bangumi.py),但目前标注为"待测试"。想试的话,在URL里填https://www.bilibili.com/bangumi/play/ss39429这类链接,并注意番剧通常需要中国大陆IP。
Q4:下载的视频打不开/没声音?一句话结论:视频是MP4格式,换个播放器试试。VLC、PotPlayer这类万能播放器基本都能通吃;另外确认合并阶段是否提示成功,若用的是moviepy合并,装好ffmpeg后再跑一次通常能解决。
Q5:会不会下载到一半把硬盘塞满?一句话结论:临时文件会自动清理。程序下载时会把音视频先放在temp目录,合并完自动删除,只把成品留在output。不过4K视频单个动辄几个GB,建议留够磁盘空间。
现在就动手,建立你的离线视频库
工具本身只是手段,它背后真正的价值是:你把内容的所有权拿了回来。无论是怕课程下架、想离线刷剧,还是单纯想整理一份属于自己的收藏夹,bilibili-downloader 都能用免费开源的方式帮你达成。
最后想温和地提醒一句:下载的内容请用于个人学习与收藏,别拿去二次传播或商用;也别开超高并发去压榨B站服务器——尊重创作者,才能让好内容持续产生。
现在就可以做的四件事:
- 克隆仓库到本地,装好依赖;
- 花一分钟复制你的B站Cookie,填进
config.py; - 把最想保存的3个视频链接加入
URL列表; - 运行
python main.py,看着进度条跑完,收获第一个离线视频。
完整的功能说明、Cookie获取截图和运行示例都在项目的 README.md 里,配置有疑问随时回去翻。收藏是收藏,拥有是拥有——从今天起,你选哪一个?
注:文中关于"番剧支持为待测试状态"的判断,来自项目README的功能清单标注;具体清晰度档位(4K/杜比视界/8K等)以你的Cookie账号实际权限为准。
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考