和岁岁
和岁岁
发布于 2024-04-22 / 507 阅读
1
0

一款自动下载哔哩哔哩收藏夹的Docker:Bili-Sync-rs

昨天在B站闲逛的时候看到一款有趣的容器,叫bili-sync。

项目在这儿:https://github.com/amtoaer/bili-sync

这是一款能用尽量高的文件参数自动下载哔哩哔哩收藏夹的容器:

  • 全自动的下载流程,收藏便下载;

  • 可以登录大会员;

  • 多线程下载;

  • 定义格式和编码,并自动封装和转码;

  • 支持订阅收藏夹,下载全部视频,也可以按需下载;

  • 可以下载弹幕;

  • 支持Emby媒体库格式的海报墙(¿

在理想情况下,下载的结果会自动整理成这样:

额我直接借用的作者的图,因为我没有Emby...

嚯嚯嚯,封面图都是直接去作者那里偷的(


网上的教程五花八门还挺复杂,提炼一下可能会更方便部署,原理是一样的不过流程会更容易理解。

前置准备

先创建需要的文件夹

这个容器只需要一个叫 config 的文件夹,首先根据习俗,养成良好习惯,在docker的运行目录里创建一个叫 Bili-Sync-rs 的文件夹,文件夹的下面分别创建Config大小写无所谓。

创建好了之后应该是这样的:

然后进入到刚才创建的Bili-Sync-rs/Config里,用随便什么方法在Config下创建一个文件叫config.toml

(不知道怎么创建的话,可以直接用Windows访问这个文件夹,新建→“新建文本文档.txt",然后把它的文件名改成config.toml

创建好了之后,用文本编辑器,或者记事本也可以,打开它:

创建配置

把下面的配置文本内容复制 → 粘贴进去,然后点一下保存:

video_name = "{{title}}"
page_name = "{{title}}_{{bvid}}"
interval = 1200
upper_path = "/app/.config/bili-sync/upper_face"

[credential]
sessdata = ""
bili_jct = ""
buvid3 = ""
dedeuserid = ""
ac_time_value = ""

[filter_option]
video_max_quality = "Quality8k"
video_min_quality = "Quality360p"
audio_max_quality = "QualityHiRES"
audio_min_quality = "Quality64k"
codecs = [
    "AV1",
    "HEV",
    "AVC",
]
no_dolby_video = false
no_dolby_audio = false
no_hdr = false
no_hires = false

[danmaku_option]
duration = 15.0
font = "黑体"
font_size = 25
width_ratio = 1.2
horizontal_gap = 20.0
lane_size = 32
float_percentage = 0.5
bottom_percentage = 0.3
opacity = 76
bold = true
outline = 0.8
time_offset = 0.0

[favorite_list]
30000000 = "/downloads"

展开解释

!!一定要十分严格的写!!

"sessdata": "填写项",

"bili_jct": "填写项",

"buvid3": "填写项",

"dedeuserid": "填写项",

"ac_time_value": "填写项",

#上面五个项目是账户信息和账户所登录的设备信息。

结尾的[favorite_list] 下面是收藏夹的ID和对应的下载目录。

填写信息

获取收藏夹ID

先来获取ID,再填账号信息。

首先打开电脑的浏览器,打开bilibili,登录自己的账号,然后点右上角的“收藏”,点“新建收藏夹”为这个镜像创建一个专门的收藏夹,方便以后管理:

创建好了之后点进这个收藏夹,会看到网址栏有变化:

https://space.bilibili.com/xxxxx/favlist?fid=30000000&ftype=create

此处的fid=后面的30000000便收藏夹ID,将它复制下来填写到favorite_list下面:

[favorite_list]

30000000 = "/downloads"---引号中为之后挂载的下载目录。

如果有多个收藏夹需要订阅,则回车再写一行并挂载到不同的文件夹即可。

冒号的左边是容器的下载路径,若是多个收藏夹可以提行添加,并按对应的格式写别的文件夹。

既然到了哔哩哔哩,顺便收藏一个视频到这个文件夹里面吧!

获取账号信息

需要获取一些账号信息方便登录,emmmm...希望以后支持扫码直接登录吧(

现在只能手动获取,可以参考这篇文章获取:获取 Credential 类所需信息>>>

往下翻,找到对应的浏览器的获取方法就行。

mmmmm,还是简单说一下:

打开哔哩哔哩首页,确定自己已经登录,按键盘上的F12,如果弹出警告或者提示,就点“允许”,然后看这儿:

将这四项分别复制出来,粘贴到对应的引号中。

!!!只需要复制数字,不要有多余的字符和空格!!!

ac_time_value

还有最后一项信息,ac_time_value没有获取到,在上面的同一个界面,点“控制台”,然后输入window.localStorage.ac_time_value ,下面显示的数字便是ac_time_value,复制,然后粘贴到 config 中对应的位置。

!!!只需要复制数字,避免有多余的字符和空格!!!

参数设置(不需要修改)

下面二组是弹幕参数:

    },
    "subtitle": {
        "font_name": "微软雅黑,黑体",---字体名称
        "font_size": 40.0,---字体大小
        "alpha": 0.8,
        "fly_time": 5.0,
        "static_time": 10.0

第三组是下载的视频参数:

    "stream": {
        "video_max_quality": 127,---视频最高参数
        "audio_max_quality": 30280,---音频最高参数
        "video_min_quality": 16,---视频最低参数
        "audio_min_quality": 30216,---视频最高参数
        "codecs": [---优先编码顺序
            "av01",--AV1编码
            "avc",---x264编码
            "hev"---x265编码
        ],
        "no_dolby_video": false,---不要杜比视界  false表示不启用,true表示启用
        "no_dolby_audio": false,---不要杜比音轨  false表示不启用,true表示启用
        "no_hdr": false,---不要HDR  false表示不启用,true表示启用
        "no_hires": false---不要High Resolution Audio  false表示不启用,true表示启用

可以根据需要调整,不调整保持默认也行。


检查一下

填写好了之后检查一下然后保存,配置文件应该是这样的:


开始部署

等一下,等一下

还要回到文件管理中新建一个文件夹用于存放下载文件。

在计划要放下载文件的位置新建一个文件夹,名字无所谓,记得住就行,比如我就创建一个文件夹在/volume3/Hotdata/Bili-Sync-rs,放到我的放临时文件的目录,一会儿在挂载/downloads时挂载这个位置就行。

开始部署

打开Docker,切换到“注册表”选项卡,搜索"bili-sync-rs",双击唯一的那个,版本选择“latest”,下载。

或者输入命令拉取也可以:docker pull amtoaer/bili-sync-rs

然后双击创建,容器设置这样填:

填好了之后点击完成应用,然后看看日志有没有报错:


检查结果

回到刚才设置的目录,看看刚才设置的视频有没有下载成功,如果看到文件被顺利下载了就说明弄好啦↓


有错别字的话之后再改,此刻的我需要去做点吃的 = =


评论