最近打开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 再次启动容器,即可查看到下载内容。

感觉飞牛的影视和这个适配的不是很好,展示的方式不是很喜欢。