An script to download all audios of the Bilibili uploader you love.
轻松下载指定up主全部或指定的视频音频。
-
基于 bilibiliAudioDownloader 制作,添加了指定up主和单个音频的功能,完善了命令行参数。 -
新版本中已对代码进行了重构,不使用原 bilibiliAudioDownloader 中的代码。保留原有功能的同时,方便适配新的API。
-
参照 bilibili-API-Collection 的文档修复了 412 报错问题。
pip install BiliFM --upgrade
或在本地使用并安装依赖
pip install -r requirements.txt
使用实例:
bilifm uid 261485584
uid = "261485584" # uid 为 UP 主的 uid
Note
bv 模式现已支持多 P 下载,使用方式和普通 bv 模式相同
同理,其他模式的下载也支持分 P 视频
bilifm bv BV1k341187
bvid = "BV1k341187" # bvid 是要下载的音频的视频 bv 号
bilifm fav 69361944 cookies.json
media_id = "69361954" # media_id 是收藏夹的 media_id,注意不要和 uid/fid 弄混
cookies_path = "cookies.json" # cookies 是保存 cookies 的文件路径,注意需要转换为 json
media_id 的获取:
cookies 的获取:
-
在开发者工具的控制台中输入
document.cookie
-
cookies 转换为 json:在线 cookies 转换
下载视频合集
bilifm season $uid $sid [OPTIONS]
- uid, sid 的获取: 打开视频合集网页, 从 URL 中获取
https://space.bilibili.com/23263470/channel/collectiondetail?sid=1855309
例如上面链接, uid 为 23263470, sid 为 1855309 (目前 uid 可以随意填写)
bilifm season 23263470 1855309
- Options:
- -o, --directory 选择音频保存地址
下载视频列表
bilifm series $uid $sid [OPTIONS]
- uid, sid 的获取: 打开用户空间中的合集和列表, 找到列表点击更多, 然后从URL中获取
https://space.bilibili.com/488978908/channel/seriesdetail?sid=888434
例如上面链接, uid 为 488978908, sid 为 888434. 使用下面命令
bilifm series 488978908 888434
- Options:
- -o, --directory 选择音频保存地址
-
python 版本限制未知- 在函数定义时使用了类型注解,故不建议使用 3.5 以下版本
-
接口简洁方便调用
@app.command()
def bv(bv: str):
audio = Audio(bv)
audio.download()
@app.command()
def uid(uid: str):
user = User(uid)
for video in user.videos:
bv = video["bvid"]
audio = Audio(bv)
audio.download()
typer.echo("Download complete")
- 获取 UP 主视频列表时会出现 UnicodeDecodeError,
原因未知- 初步判断是网络不稳定所致,在稳定的网络环境下没有出现此问题
- 暂时采用 try-except 跳过这一过程
- 在使用前需关闭代理
bilibiliaudioDownloader 的作者没有选取许可证,暂时选择 MIT License- bilibiliAudioDownloader 的作者已添加 GPL-3.0 License,故本项目亦修改为 GPL-3.0
感谢以下产品对 BiliFM 的赞助: