最近打开b站收藏夹,发现好多视频被删除或者失效了,甚至都不知道是什么内容,因此找到了bili-sync-rs这个工具来下载收藏夹视频,配合fnOS的视频播放器使用。项目源地址:amtoaer/bili-sync: 由 Rust & Tokio 驱动的哔哩哔哩同步工具。
1. 编辑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"
上面是作者给出的推荐配置,需要根据自己的实际情况修改。
先修改 - ${你希望存储程序配置的目录}:/app/.config/bili-sync
例如 - ./bili:/app/.config/bili-sync
2. 创建docker目录
假设我使用的是root用户,在家目录下创建docker文件夹,docker文件夹下创建bili文件夹。
将上述docker-compose保存至docker文件夹下命名为docker-compose.yml,与bili文件夹平级。
在/root/docker目录下执行docker compose up -d
运行容器。
3. 修改配置文件
输入以下命令,查看容器id:
docker ps
输入如下:
输入命令,停止容器:
docker stop id # 此处的id替换为上述图片中的CONTAINER ID,例如我这里可以写为 docker stop 107 因为这里107已经能够唯一识别容器
此时会发现 /docker/bili
目录下会生成一个配置文件config.toml
nano /docker/bili # 修改文件内容
# 以下为文件初始内容:
video_name = "{{title}}"
page_name = "{{bvid}}"
interval = 1200 # 可以修改大一点,轮询时间
upper_path = "/Users/amtoaer/Library/Application Support/bili-sync/upper_face" # 这里保存了up的头像,可以保持默认
nfo_time_type = "favtime"
[credential]
sessdata = "" # 修改1
bili_jct = "" # 修改2
buvid3 = "" # 修改3
dedeuserid = "" # 修改4
ac_time_value = "" # 修改5
[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]
# 修改6
[collection_list]
[watch_later]
enabled = false
path = ""
登录B站,打开开发人员工具页面,在cookie下找到#修改1-4
处对应的值:
在控制台处输入:
window.localStorege.ac_time_value
复制这串字符到 #修改5
处。
在自己B站的收藏夹处获取对应收藏夹的id:
这里有一点需要注意的是,需要分辨清楚视频是合集还是列表。
具体区别请见:获取视频合集/视频列表信息 | bili-sync
得到修改6的内容:
[favorite_list]
2023158539 = "/media/FPGA知识点" # 后面为下载的位置
2459243739 = "/media/FPGA系列教程"
1529827139 = "/media/Study"
4. 再次启动docker容器
services:
bili-sync-rs:
image: amtoaer/bili-sync-rs:latest
restart: unless-stopped
network_mode: bridge
tty: true
user: 1000:1000
hostname: bili-sync-rs
container_name: bili-sync-rs
volumes:
- ./bili:/app/.config/bili-sync #根据自己位置修改
- ./data:/media # 右侧保持/media,左侧根据自己位置修改为下载路径
# ...
# 如果你使用的是群晖系统,请移除最后的 logging 配置,否则会导致日志不显示
logging:
driver: "local"
docker compose up -d
再次启动容器,即可查看到下载内容。
感觉飞牛的影视和这个适配的不是很好,展示的方式不是很喜欢。