:beers: bilibili video and danmaku downloader | B站视频、弹幕下载器
Project description
bilili
WIP,大规模重构中,尚不如 master 分支稳定,由于 aria2 的下载速度不如直接用 python 下载快(很迷),所以将重新添加一个 Python 下载器
使用 Python 下载 B 站视频,ビリリ~
仅限个人学习和研究使用,切勿用于其他用途
Get Started
bilili
可以从以下两种视频主页获取视频
- 普通视频:
https://www.bilibili.com/video/avxxxxxx
https://b23.tv/avxxxxxx
https://www.bilibili.com/video/BVxxxxxx
https://b23.tv/BVxxxxxx
- 番剧视频:
https://www.bilibili.com/bangumi/media/mdxxxxxx
安装 FFmpeg
由于大多数格式需要合并,所以 bilili 需要使用 ffmpeg,你需要事先安装好它
Windows 请手动下载后,存放到任意目录下,并将该目录添加到环境变量
而如果是 *nix
,可以很方便地通过包管理器一键完成
安装 Bilili
pip install bilili
此外你还可以在 Github 上下载最新的源码
git clone git@github.com:SigureMo/bilili.git
pip install -r requirements.txt
运行
如果你是通过 pip
直接安装程序,此时你可以直接使用命令 bilili
来进行下载
bilili <url>
而如果你是通过源码运行,需要在项目根目录运行如下命令
python -m bilili.bilili_dl <url>
当然,你需要将 <url>
替换为前面的视频主页 url
Options
bilili
还支持很多参数,具体如下
-f
/--format
选择下载格式(flv
orm4s
ormp4
),默认为 m4s 格式,注意该参数仅代表下载源格式,所有格式最后均会转为 mp4-d
/--dir
指定存储目录,默认为项目根目录-q
/--quality
指定清晰度,默认为120
,对应关系如下120
# 超清 4K116
# 超清 1080P60112
# 高清 1080P+80
# 高清 1080P74
# 高清 720P6064
# 高清 720P32
# 清晰 480P16
# 流畅 360P如果不存在指定的清晰度,会自动降低到最接近的清晰度
-t
/--num-thread
指定最大下载线程数,默认为 30-p
/--episodes
选集,可通过以下方式进行选择,默认为 all<p1>
单独下某一剧集<p1>,<p2>,<p3>,...,<pn>
即通过,
分割,不要加空格<p_start>~<p_end>
即通过~
分隔,下载起始到终止的剧集all
全部下载
-w
/--overwrite
强制覆盖已下载视频-c
/--sess-data
传入cookies
中的SESSDATA
--playlist-type
指定播放列表类型,支持dpl
和m3u
,默认为dpl
,设置为no
即不生成播放列表--path-type
指定播放列表路径的类型(rp
:相对路径,ap
:绝对路径),默认为相对路径--ass
自动将XML
弹幕转换为ASS
弹幕
Note
Download and merge
视频的下载需要包含下载和合并两个过程,如果出现进度条卡在最后一刻一段时间属于正常现象,此时往往在进行合并操作
Source
由于 m4s 格式下载速度更佳,因此默认使用 m4s 格式,但偶尔有些课程仍然不支持 m4s 格式(如 操作系统_清华大学(向勇、陈渝),现已支持,但尚不能保证全部资源均已支持),遇到此类资源请手动切换至 flv 格式
此外,还支持直接解析“高清晰度”的 mp4 视频(仅 acg video,而且最新的 4K 等清晰度是获取不到的),无需合并,但是速度很慢,所以事实上也没什么必要去尝试……不建议使用
由于现在同时支持三种接口,所以……我暂时懒得继续改进代码,等以后 Flash 接口彻底被取缔的时候,可能会好好整理下代码(如果那时候我还维护的话)
Danmaku
默认会下载 XML 格式的弹幕,如果想使用 ASS 格式的弹幕(大多数播放器都支持,可以自动加载),可以加参数 --ass
自动转换,或者手动在us-danmaku转换
另外,程序内自动转换依赖 danmaku2ass ,但是并没有将它存放在我的代码里,而是根据需要动态从 github 上下载并加载的
Playlist
默认生成相对路径类型的 PotPlayer
播放列表,如果你不想使用 PotPlayer
的话,可以通过参数来修改
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.