公司动态
从“缓存到一半就失败“到“整季4K离线收藏“:我用bilibili-downloader搞定B站视频下载
从缓存到一半就失败到整季4K离线收藏我用bilibili-downloader搞定B站视频下载【免费下载链接】bilibili-downloaderB站视频下载支持下载大会员清晰度4K持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader上周五晚上我把一个大会员的4K教学视频加到B站稍后再看里打算周末离线补课。结果周末一到视频因为版权到期直接下架了——想看的没保存下来B站会员里的高清资源我也一个都留不住。那一刻我决定必须找一个能真正把B站视频下载到本地的工具。翻了一圈最终让我安定下来的是一个叫bilibili-downloader的开源工具。它免费、支持大会员4K清晰度、能下充电专属内容、还能批量处理分P视频。这篇实战记录就是我把它从零跑通的完整过程跟着走一遍你也能在十分钟内把第一个视频存进硬盘。开跑之前先备好三样东西动手之前确认三件事缺一样都容易卡壳Python 3.8 或更高版本终端里输入python --version能查一个B站账号并且已经登录下大会员内容时账号必须带会员身份一段自己的Cookie怎么拿下面第二步细说它是整个工具能伪装成你的关键顺便说一句工具本身不挑系统Windows、macOS、Linux 都能跑下面命令在 macOS / Linux 下把python换成python3即可。第一步把项目请到本地在终端里执行两条命令项目就位git clone https://gitcode.com/gh_mirrors/bil/bilibili-downloader cd bilibili-downloader接着安装依赖。项目就四个库httpx负责异步请求、beautifulsoup4解析页面、moviepy合并音视频、tqdm画进度条一条命令装完pip install -r requirements.txt当时的坑如果你电脑里同时有多个Python环境记得确认pip和python指向同一个环境否则会报ModuleNotFoundError。另外建议装一下ffmpeg它能以秒级速度无损合并音视频没有它程序会自动退回 moviepy 方案也能跑就是合并慢一些。第二步拿到你的Cookie这是唯一的钥匙工具核心逻辑都在strategy/目录里它下载视频前会带上你配置的 Cookie 去请求B站接口。Cookie 就像你的数字通行证——B站靠它认出是你本人在下载所以没有它大会员4K和充电视频都会被打回480P甚至直接拒绝。获取步骤不复杂全程在浏览器里完成登录B站打开任意一个视频页按F12打开开发者工具切到网络Network标签按Ctrl R刷新页面点击列表里第一个请求在请求头Request Headers里找到cookie那一整行复制全部内容项目文档里正好有一张标注好的示意图跟着红色箭头操作就行复制完打开项目根目录的config.py把那段长字符串贴进COOKIE ...的引号里保存即可。重点提醒Cookie 里的SESSDATA大约30天失效。我就在日历上设了个每月提醒顺便每次只在自己电脑上用绝不外传——这东西等于你的账号分身。第三步把想下的视频填进清单还在config.py里往下找到URL列表往里加链接就行。它支持三种写法我分别标一下URL [ # 普通视频整段链接直接贴 https://www.bilibili.com/video/BV1M4411c7P4/?vd_sourcexxxxxxxx, # 分P视频第2集靠 ?p2 指定 https://www.bilibili.com/video/BV1TnsZzHEcz/?p2, # 充电专属视频和普通视频一样贴进来 https://www.bilibili.com/video/BV1W1wKeWEVe/, ]放几个就下几个想下一整个合集就把每集链接都贴进去。注意URL 里BV号后面如果直接跟?参数最好在中间补一个/写成BV1xxxx/?p2这是项目在strategy/bilibili_executor.py里专门做了处理的细节——不规范的话会被B站重定向白白把清晰度从1080P打回480P。第四步运行然后看着进度条走完清单填好回到终端在项目目录下运行python main.py程序会先打印一段配置信息待下载数量、并发模式、输出目录。随后进入下载环节你会看到这样的画面——每个视频的音频和视频流同时并发下载进度条实时跳动视频流下载完程序自动用 ffmpeg 把音视频合并成完整 MP4搬进output/文件夹再清掉temp/里的临时文件。最后给你一张下载摘要成功几个、失败几个、总用时、文件保存在哪。我那次下了3个视频全程没碰任何命令行参数它自己跑完了。如果你遇到下载中断别慌工具内置了重试机制每个分片最多重试5次失败会自动续传真正失败的任务会把链接单独写进failed_urls.txt你复制回去重新跑一次就行。两个文档里没细说但很实用的玩法玩法一一次搞定整季分P视频。把每一集的链接带?pN全塞进URL列表程序会按顺序并发处理文件名自动带_P1、_P2这样的序号合并后不会互相覆盖。我当初把某UP主一个13小时的合集分P全存了下来一集没落。玩法二控制并发给网络减负。在main.py里有个max_concurrent 2的变量意思是同时最多下载2个视频。家里带宽小就改成1网速快且赶时间改成3也稳。工具用asyncio.Semaphore做信号量限流改数值即可不用动其他代码。说句实在话这些边界要守住工具本身没问题但用它的方式得讲分寸下载内容只用于个人学习、离线收藏别拿去商用或二次传播——很多视频是UP主的心血也是平台的版权资产别挂一堆账号疯狂批量拉取给B站服务器留点余地也降低自己账号的风险Cookie 是敏感信息任何情况下都不要公开、不要发给别人现在轮到你了回头看我的离线视频库就是这么一步步建起来的全程零付费。把步骤压缩成清单给你git clone https://gitcode.com/gh_mirrors/bil/bilibili-downloader并pip install -r requirements.txt浏览器 F12 → 网络 → 复制第一个请求的 cookie贴进config.py的COOKIE把想下的链接填进URLpython main.py等进度条走完去output/文件夹里验收成果下载工具解决的是内容留不住的焦虑但真正值得留下的是那些让你反复回看的作品。希望你用 bilibili-downloader 存下的第一个视频就是某天你会感谢自己保存了的那一个。现在就去试试吧——记得先备份好你的 Cookie。【免费下载链接】bilibili-downloaderB站视频下载支持下载大会员清晰度4K持续更新中项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考