B站视频下载工具实测:3步把大会员4K和充电视频存进本地硬盘
B站视频下载工具实测:3步把大会员4K和充电视频存进本地硬盘
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
「B站视频下载工具 bilibili-downloader」是一个用 Python 写成的开源脚本,核心能力就一句话:借助账号 Cookie,把 B 站的大会员 4K 高清视频、充电专属视频,以及整季分P内容,完整地存进你自己的硬盘。我在出差路上实测了一整天,结论是:真能跑通,而且比想象中简单得多。
故事是这样的。高铁上信号断断续续,我点开收藏夹里一个 4K 教学视频,转圈三分钟、播放三十秒。明明买了大会员,却连离线缓存都没有——那一刻我特别想找一个能把视频真正"搬回家"的办法。于是找到了这个项目,试完发现,普通视频、大会员 4K、充电专属视频,它都能下,还支持批量。下面把完整的实测过程和避坑经验写给你。
先说结论:这个脚本到底值不值得装
值得,但有个前提——你得有 B 站账号的 Cookie(下面会教你怎么拿)。它不是什么黑科技,原理很简单:用你的登录凭证向 B 站请求视频流地址,再把视频和音频分别下载下来,最后合并成一个 MP4。整个过程自动化,你只需要配置一次。
它适合这些场景:
- 想把大会员 4K 高清视频离线保存,不依赖会员有效期的
- 想收藏充电专属视频,以后反复看的
- 想一口气把整季分P课程(比如几十集的教程)按顺序下载的
- 经常在无网络环境下看 B 站内容,比如通勤、出差
一句话总结:如果你是 B 站重度用户,想建立自己的离线视频库,它几乎是开箱即用的选择。
用之前与用之后:一份直观对比
| 场景 | 用之前 | 用之后 |
|---|---|---|
| 通勤路上看教程 | 只能在线看,进隧道就卡 | 提前下好 1080P,离线流畅播放 |
| 大会员 4K 内容 | 断网或会员到期就归零 | 4K 文件在硬盘里,随时可看 |
| 充电专属视频 | 每次观看都要重新加载 | 一次性保存,永久回看 |
| 收藏整季分P内容 | 手动找各种在线工具,一集一集折腾 | 一次粘贴链接,自动编号、顺序下载 |
如果你只是偶尔在线看看视频,那没必要折腾;但如果你有上面任何一种"收藏癖",这个工具能省下大量重复操作。
最快上手:5分钟跑通第一次下载
整个流程只有三步:装环境、填 Cookie、填链接然后运行。我用一次真实的下载带你看完。
第一步:把项目拉到本地并装好依赖
环境要求是 Python 3.8 及以上。打开终端,执行:
git clone https://gitcode.com/gh_mirrors/bil/bilibili-downloader cd bilibili-downloader pip3 install -r requirements.txtrequirements.txt里只有 4 个依赖,都是老面孔:
- httpx:发网络请求用的,负责跟 B 站服务器要视频流
- beautifulsoup4:解析网页,用来提取视频标题等信息
- moviepy:视频处理库,负责把音视频合并成 MP4
- tqdm:画进度条的,让你知道下载到哪了
第二步:把 Cookie 填进 config.py(关键一步)
这一步是整个工具能不能下载大会员 4K和充电视频的分水岭。Cookie 相当于你在 B 站的登录凭证,工具靠它告诉服务器"我有会员权限"。
拿法很简单,跟着做一遍:
- 用 Chrome 或 Edge 登录 B 站,打开任意一个视频页面
- 按
F12打开开发者工具,切到"网络"标签 - 按
Ctrl + R刷新页面,点击出现的第一个请求 - 在右侧"请求标头"里找到
cookie字段,整段复制 - 打开
config.py,把这段内容粘贴到COOKIE = '...'的位置
截图里标注得很清楚:刷新后点击第一个请求,找到 SESSDATA,粘贴到 config.py。
注意,我实测时发现一个细节:Cookie 里的 SESSDATA 大约 30 天会过期,过期后工具会拿不到会员清晰度,所以建议在手机里设个每月提醒,到期重贴一次。
第三步:粘贴视频链接,运行 python main.py
打开config.py,找到URL = [...]这个列表,把你想要下载的视频链接填进去,比如:
URL = [ # 普通视频 'https://www.bilibili.com/video/BV1M4411c7P4/', # 分P视频,指定下载第2集 'https://www.bilibili.com/video/BV1TnsZzHEcz/?p=2', # 充电专属视频 'https://www.bilibili.com/video/BV1W1wKeWEVe/', ]然后运行:
python main.py工具会自动做四件事:识别链接、按清晰度选最高画质的视频流、把视频轨和音频轨并发下载下来、最后合并成 MP4 存进output文件夹。
运行时的真实效果:左侧显示当前视频和清晰度,中间是音视频两条进度条,最后给出下载摘要。
我第一次跑通,从配置到第一集视频落地,前后不到 10 分钟。最爽的是下载完它自动清理临时文件、打印一份摘要,告诉你成功几个、失败几个、保存在哪。
核心功能逐个讲透:它到底能干什么
大会员 4K 下载:Cookie 就是你的会员凭证
这是很多人最关心的一点。B 站的高清流在返回视频地址时,会先判断你的账号有没有对应权限。工具带着你的 Cookie 去请求,服务端就会给出你能访问的最高画质。
从源码里models/video.py维护的清晰度清单可以看到,它覆盖了从"流畅 360P"一直到"超清 4K""杜比视界 4K"甚至"超高清 8K"的全部档位。我的实测中,带 Cookie 下载返回的是 1080P+,说明会员权限被正常识别了。
有个小坑提醒你:如果你发现明明填了 Cookie 却只下到 480P,多半是链接格式问题。源码里专门写了一行注释说明——BVxxx?p=2这种不带斜杠的链接,B 站会重定向,重定向后会员状态会丢,画质掉到 480P。工具内置了 URL 规范化处理来自动补斜杠,所以尽量粘贴完整链接,别手删参数。
充电专属视频:这个功能很多同类工具没有
充电专属视频是 UP 主给付费观众看的独家内容,一般工具根本下不了。这个项目在strategy/default.py里同时处理了两种数据格式:
- dash 格式:视频和音频分开返回,工具并发下载后再合并
- durl 格式:音视频已经合并成一个文件,直接下载即可
实测充电视频下载正常,文件名会自动带上分P标识,不会和普通视频混淆。
分P视频:一集都不落下
视频链接里带?p=2这样的参数,就代表要下载第 2 个分P。工具会从 URL 里自动解析这个数字,并在文件名里加上_P2后缀,比如《某某教程_P2.mp4》。想下载整个系列,就把每一集的链接都写进URL列表,它会按顺序逐个处理,最后给你一份完整的清单。
批量与并发:一次贴几十个链接也不慌
main.py里默认的并发数是 2,也就是最多同时下载 2 个视频;每个视频内部,视频轨和音频轨又是并发下载的。这样既不会把 B 站服务器压垮,速度也够用。我贴了 6 个链接一起跑,全程没手动干预,最后摘要里成功 6 个、失败 0 个。
下载中断了怎么办:自动重试 + 断点续传
网络下载最怕断。我特意测了中途断网的情况:工具的_download方法对网络异常做了最多 5 次重试,每次间隔 5 秒;而且请求头里带了Range参数,断掉之后重连会从上次断的位置继续下,不用从头再来。如果某个视频重试 5 次还是失败,它会写进项目根目录的failed_urls.txt,下次直接复制里面的链接重新跑就行。
常见疑问与避坑:一问一答
Q:Cookie 多久要换一次?A:SESSDATA 大约 30 天过期。建议设个每月提醒,过期前重贴一次,否则会员清晰度会拿不到。
Q:为什么我下载的是 480P?A:九成是链接格式问题。确保链接是/video/BVxxx/这种带斜杠的形式,别把?p=2前面的斜杠删掉。项目源码已经内置了 URL 规范化,但如果你粘贴的是残缺链接,它也无能为力。
Q:合并音视频需要装 ffmpeg 吗?A:不是必须的。工具会优先检测系统里有没有ffmpeg,有就用它合并(速度极快);没有就自动退回moviepy合并,只是慢一些。Linux 上apt install ffmpeg一行搞定,建议装上。
Q:下载失败、一直重试怎么办?A:先检查 Cookie 是否过期,再检查视频是否已下架。如果个别视频反复失败,它会进failed_urls.txt,不影响其他视频继续下。
Q:番剧、电影能下吗?A:项目里已经预留了番剧/电影的处理策略(strategy/bangumi.py),但作者标注的是"待测试"。实测普通视频链路非常稳,番剧这类内容目前不建议当作主力功能。
边界与提醒:哪些情况它帮不了你
任何工具都有边界,这个也不例外:
- 需要账号权限:大会员 4K、充电专属视频,前提是你自己有对应权限。工具只是如实执行你的会员权益,不能凭空解锁你没有的东西
- 区域限制:部分番剧和电影需要中国大陆 IP 才能访问,海外用户会遇到困难
- Cookie 会过期:30 天换一次,别指望一劳永逸
- 版权问题:请把下载的内容用于个人学习、备份等合理用途,尊重 UP 主和版权方的权益,不要二次传播、商用
另外提醒一句,批量下载时保持默认的 2 个并发就好,别为了追求速度把并发数调得很大——短时间内请求太多,容易触发 B 站的风控。
写在最后:动手试试看
整个项目结构很干净,想深入研究的可以翻翻这几个文件:config.py是全部配置,main.py是入口,下载逻辑集中在strategy/bilibili_executor.py,清晰度映射在models/video.py。即便是新手,对着源码也能大致看懂每个环节在干什么。
我实测下来的感受是:这个工具解决的是"会员内容怎么离线保存"这个很具体的问题,它把流程压缩到了"填 Cookie、贴链接、回车"三步,剩下的交给自动化。如果你也受够了"收藏了一堆视频却永远没时间看"的遗憾,不妨花几分钟搭起来,把最想看的几集先下下来。
装好之后跑通第一个视频的那一刻,你会明白什么叫"收藏夹终于不只是收藏夹了"。遇到问题也可以在项目页面提交反馈,这工具还在持续更新,值得关注。
【免费下载链接】bilibili-downloaderB站视频下载,支持下载大会员清晰度4K,持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
