一个简单的用于下载 Bilibili 视频的 Python 工具,支持单P与多P视频下载
基于 SocialSisterYi/bilibili-API-collect 开发
自 v0.3
版本开始已将 windows
与 linux
版本区分
v0.4
版本新增番剧下载功能
- 支持单P与多P视频下载
- 支持视频和音频分开下载
- 自动选择视频质量
- 合并视频和音频为 MP4 格式
- Python 3.6 或更高版本
requests
,qrcode
, windows 还会需要PyQt5, PyQt5-tools
库 (v0.3
版本仅需requests
、qrcode
库)Aria2c
工具(用于下载视频)(已集成在tools文件夹中)FFmpeg
工具(用于合并视频和音频)(已集成在tools文件夹中且已经过裁剪)
- 克隆安装:
git clone https://github.com/RyrieNorth/bilibili_video_download_reburn.git cd bilibili_video_download_reburn/ python setup.py install
- 从release中下载安装(注意版本信息):
wget https://github.com/RyrieNorth/bilibili_video_download_reburn/releases/download/v0.4/bilibili_video_download_reburn_for_windows-0.4-py3-none-any.whl pip install bilibili_video_download_reburn_for_windows-0.4-py3-none-any.whl
- 如何卸载:
pip list # 查找bilibili_video_download相关字眼, 例如:bilibili-video-download-reburn-for-windows pip uninstall bilibili-video-download-reburn-for-windows 无论是直接从 python setup.py install 还是在 pip 卸载方式都一样
- 默认配置
{ "url": { "get_qrcode": "https://passport.bilibili.com/x/passport-login/web/qrcode/generate", //获取二维码 "check_qrcode_scan": "https://passport.bilibili.com/x/passport-login/web/qrcode/poll", //查询二维码状态 "play_api": "https://api.bilibili.com/x/player/playurl", //播放器api "convert_cid": "https://api.bilibili.com/x/player/pagelist", //将bvid转为cid "login_url": "https://api.bilibili.com/x/web-interface/nav", //查询用户登录状态 "video_info": "https://api.bilibili.com/x/web-interface/view", //查询视频详细信息 "get_anime": "http://api.bilibili.com/pgc/view/web/season" //解析番剧bvid }, "basic_headers": { "user-agent": "Mozilla/5.0", "referer": "https://www.bilibili.com" //b站视频的防盗链,勿删,否则视频会无法下载 }, "video": { "video_path": "video" //视频的存放路径,可修改 }, "aria2c": { "continue": "true", //是否启用aria2断点续传,该选项用于网络环境不好的情况下使用,建议为true "split": "16", //分片下载,这里设置16片,最大可设32,过大的会话可能会被服务器限流 "max_connection_per_server": "8" //服务器最大连接数,某些地方的网络可能会限制会话,若出现视频下载未响应请调整,默认为5 } }
- 在终端直接运行:
bl_download <BV号/番剧号>
替换 <BV号> 为你要下载的视频 BV/番剧 号。(期间若没有登陆成功会触发登陆逻辑)
- 作为库使用:
from bilibili_video_download import main video_id = "BV1Gg411L7zg" main(vedeo_id) from bilibili_video_download import main video_id = "ep1349841" main(video_id)
- 使用演示
当cookies信息不存在时:
- 非登录用户只能下载360P视频
- 非大会员用户只能下载低码率1080P视频
- 1080P+,1080P60,4k,8k,杜比,Hi-Res等视频需要账号性质为大会员方得下载
- 在Linux下使用时无法正常显示进度条(测试环境:CentOS 7.9 2009、RockyLinux 9.3), 故推荐使用Windows平台运行本工具