一、安装
1、docker命令安装
sudo docker run -d
--name bilisync
-v /volume1/docker/bilisync/config:/app/.config/bili-sync
-v /volume2/video/Bili:/media
amtoaer/bili-sync-rs:latest
注:自行修改映射目录
/app/.config/bili-sync——配置文件路径
/media——视频下载路径
2、使用 Docker Compose 运行
services:
bili-sync-rs:
# 不推荐使用 latest 这种模糊的 tag,最好直接指明版本号
image: amtoaer/bili-sync-rs:latest
restart: unless-stopped
network_mode: bridge
# 该选项请仅在日志终端支持彩色输出时启用,否则日志中可能会出现乱码
tty: true
# 非必需设置项,推荐设置为宿主机用户的 uid 及 gid (`$uid:$gid`)
# 可以执行 `id ${user}` 获取 `user` 用户的 uid 及 gid
# 程序下载的所有文件权限将与此处的用户保持一致,不设置默认为 Root
user: 1000:1000
hostname: bili-sync-rs
container_name: bili-sync-rs
volumes:
- ${你希望存储程序配置的目录}:/app/.config/bili-sync
# 还需要有一些其它必要的挂载,包括 up 主信息位置、视频下载位置
# 这些目录不是固定的,只需要确保此处的挂载与 bili-sync-rs 的配置文件相匹配
# ...
# 如果你使用的是群晖系统,请移除最后的 logging 配置,否则会导致日志不显示
logging:
driver: "local"
使用该 compose 文件,执行 docker compose up -d
即可运行。
3、群晖/飞牛可视化安装
①下载镜像(注意:下载amtoaer/bili-sync-rs,amtoaer/bili-sync是1.0版本,配置文件有区别)
②添加容器(群晖)
其他保持默认即可,容器启动后会一直重启,需要修改配置文件,修改说明见下文。
②添加容器(飞牛)
同样,其他保持默认即可,容器启动后会一直重启,需要修改配置文件,修改说明见下文。
二、程序配置
在启动时程序会尝试加载配置文件,如果发现不存在会新建并写入默认配置。
获得配置内容后,程序会对其做一次简单的校验,因为默认配置中不包含凭据信息与要下载的收藏夹、视频合集/视频列表,因此程序会拒绝运行而发生 panic。我们只需要在程序生成的默认配置上做一些简单修改即可成功运行。
当前版本的默认示例文件如下:
video_name = "{{title}}"
page_name = "{{bvid}}"
interval = 1200
upper_path = "/Users/amtoaer/Library/Application Support/bili-sync/upper_face"
nfo_time_type = "favtime"
[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]
[collection_list]
[watch_later]
enabled = false
path = ""
虽然配置文件看起来很长,但绝大部分选项是不需要做修改的。一般来说,我们只需要关注其中的少数几个,以下逐条说明。
-
interval
表示程序每次执行扫描下载的间隔时间,单位为秒。
-
upper_path
UP 主头像和信息的保存位置。对于使用 Emby、Jellyfin 媒体服务器的用户,需确保此处路径指向 Emby、Jellyfin 配置中的 /metadata/people/
才能够正常在媒体服务器中显示 UP 主的头像。
-
credential
哔哩哔哩账号的身份凭据,请参考凭据获取流程获取并对应填写至配置文件中,后续 bili-sync 会在必要时自动刷新身份凭据,不再需要手动管理。
推荐使用匿名窗口获取,避免潜在的冲突。
获取 Credential 类所需信息
Credential 类实例化代码如下:
from bilibili_api import Credential
credential = Credential(sessdata="你的 SESSDATA", bili_jct="你的 bili_jct", buvid3="你的 buvid3", dedeuserid="你的 DedeUserID", ac_time_value="你的 ac_time_value")
sessdata
bili_jct
buvid3
和 dedeuserid
这四个参数的值均在浏览器的 Cookies 里头,下面说明获取方法。
火狐浏览器(Firefox)
- 按 F12 打开开发者工具。
- 在工具窗口上方找到 存储 选项卡。
- 展开左边的 Cookie 列表,选中任一b站域名。在右侧找到对应三项即可。
谷歌浏览器(Chrome)
- 按 F12 打开开发者工具。
- 在工具窗口上方找到 Application 选项卡。
- 在左侧找到 Storage/Cookies,并选中任一b站域名,在右侧找到对应三项即可。
微软 Edge
- 按 F12 打开开发者工具。
- 在工具窗口上方找到 应用程序 选项卡 。
- 在左侧找到 存储/Cookies,并选中任一b站域名,在右侧找到对应三项即可。
ac_time_value
相对特殊,仅用于刷新 Cookies,可以选择不获取,在 localStorage 中的ac_time_value 字段。
只需要打开 B 站,打开开发者工具,进入控制台,输入window.localStorage.ac_time_value
即可获取值。
Cookies 值简介
常见的凭据 (Credential
) 信息有 Cookie 值
SESSDATA
bili_jct
buvid3
/buvid4
dedeuserid
以及 Local Storage 中的
ac_time_value
下列一一介绍
SESSDATA
用于一般在获取对应用户信息时提供,通常是 GET
操作下提供,此类操作一般不会进行操作,仅读取信息
如获取个人简介、获取个人空间信息等情况下需要提供
bili_jct
用于进行操作用户数据时提供,通常是 POST
操作下提供,此类操作会修改用户数据
如发送评论、点赞三连、上传视频等等情况下需要提供
buvid3
/ buvid4
是 设备验证码
通常不需要提供,但如放映室内部分接口需要提供,同时与风控有关
dedeuserid
通常为用户 UID
,几乎不需要提供
ac_time_value
在登录时获取,登录状态过期后用于刷新 Cookies
,没有此值则只能重新登录,如不需要凭据刷新则不需要提供
-
codecs
这是 bili-sync 选择视频编码的优先级顺序,优先级按顺序从高到低。此处对编码格式做一个简单说明:
- AVC 又称 H.264,是目前使用最广泛的视频编码格式,绝大部分设备可以使用硬件解码播放该格式的视频(也因此播放普遍流畅),但是同等画质下视频体积较大。
- HEV(C) 又称 H.265,与 AV1 都是新一代的视频编码格式。这两种编码相比 AVC 有更好的压缩率,同等画质下视频体积更小,但由于相对较新,硬件解码支持不如 AVC 广泛。如果你的播放设备不支持则只能使用软件解码播放,这种情况下可能导致播放卡顿、机器发热等问题。
建议查阅自己常用播放设备对这三种编码的硬件解码支持情况以选择合适的编码格式,如果硬件支持 HEV 或 AV1,那么可以将其优先级调高。
而如果你的设备不支持,或者单纯懒得查询,那么推荐将 AVC 放在第一位以获得最好的兼容性。
-
favorite_list
你想要下载的收藏夹与想要保存的位置。简单示例:
3115878158 = "/home/amtoaer/Downloads/bili-sync/测试收藏夹"
获取收藏夹 ID
收藏夹的 ID 获取非常简单,在网页端打开自己的收藏夹列表,切换到你想要获取的收藏夹,然后查看 URL 地址栏中的 fid
参数内容即可。
-
collection_list
你想要下载的视频合集/视频列表与想要保存的位置。注意“视频合集”与“视频列表”是两种不同的类型。在配置文件中需要做区分:
"series:387051756:432248" = "/home/amtoaer/Downloads/bili-sync/测试视频列表"
"season:1728547:101343" = "/home/amtoaer/Downloads/bili-sync/测试合集"
具体说明可以参考这里。
-
watch_later
设置稍后再看的扫描开关与保存位置。
如果你希望下载稍后再看列表中的视频,可以将 enabled
设置为 true
,并填写 path
。
enabled = true
path = "/home/amtoaer/Downloads/bili-sync/稍后再看"
三、运行
在配置文件填写完毕后,我们可以直接运行程序。如果配置文件无误,程序会自动开始下载收藏夹中的视频。并每隔 interval
秒重新扫描一次。
如果你希望了解更详细的配置项说明,可以查询这里。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://lg5.top/1469.html