在我往期的文章里,我曾经介绍过我们是使用 Emby 作为媒体服务器的,但随着时间的增长,我们的媒体库目标从存量完结番转向了实时追番,因此开源的 Jellyfin 成为了我们的新选择。
在本期文章里,我将讨论番剧订阅、扫描入库、以及一些有趣的美化功能。
番剧订阅
ANI-RSS 是基于 RSS 自动追番、订阅、下载、刮削的全自动下载工具。
通过 Docker 部署
services:
qb:
image: superng6/qbittorrentee:latest
container_name: qb
environment:
- PUID=0
- PGID=0
- WEBUIPORT=8989
- TZ=Asia/Shanghai
volumes:
- ./qb:/config
- /mnt/data/bangumi:/bangumi #番剧挂载路径
restart: unless-stopped
network_mode: host
ani-rss:
image: wushuo894/ani-rss:latest
container_name: ani-rss
ports:
- 7789:7789
environment:
- PORT=7789
- CONFIG=/config
- TZ=Asia/Shanghai
volumes:
- ./ani-rss:/config
- /mnt/data/bangumi:/bangumi #番剧挂载路径
restart: unless-stopped
networks:
- ani-rss
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
ani-rss:
其中,qb 是 qBittorrent 的 Docker 镜像,ani-rss 是 ANI-RSS 的 Docker 镜像。
/mnt/data/bangumi 是我们挂载番剧的路径,你应当根据自己的实际情况进行调整。
如果你有注意到的话,会发现我在 ani-rss 的 extra_hosts 配置了 host.docker.internal:host-gateway,这是因为我的网络环境较为特殊,我希望 qBittorrent 可以通过 IPv6 下载种子,然而 Docker 的默认网络配置并不支持 IPv6,因此在手动指定 qBittorrent 的网络模式为 host 后,我还额外配置了 ani-rss 的 extra_hosts ,以便 ani-rss 访问到 qBittorrent。
配置 qBittorrent
在 docker compose up -d 后,执行 docker compose logs -f 查看 qBittorrent 的日志,找到其生成的账户密码。
在修改完 qBittorrent 的账户密码后,打开 qBittorrent 的 Web UI,进入设置,找到 下载,勾上 为不完整的文件添加扩展名 .!qB,并且设置 默认保存路径 为 /bangumi。
使用默认账户 admin 和密码 admin 登录到 ANI-RSS。
登录后,不要忘记在 设置 - 登录设置 中修改账户密码。
下载设置
地址填写 http://host.docker.internal:8989,用户名和密码填写你在上一步中设置的 qBittorrent 的账户密码。
为了配合洗版,自动删除 需要打开。
保存位置填写为容器内的路径 /bangumi,保存后点击测试连接,如果一切正常的话应该会显示 连接成功。

其他设置
大多数设置项都可以保持默认。
添加订阅 部分中,标题添加年份 和 自动剧集偏移 推荐开启,其他的可以根据自己的喜好进行调整。

RSS设置 中,RSS开关 肯定是要启用的,此外 自动跳过 建议关闭,否则在 备用 RSS 下载完后就不会洗版更新成 主 RSS 的了。
当然 RSS 设置 中的 备用RSS 也不要忘记开启


添加订阅
终于到了添加订阅的环节了!
点击右上角的 添加订阅 - Mikan,搜索自己想要订阅的番剧,随后选择心意的字幕组进行订阅!
但请注意,对于较早的番剧可能存在死种的情况,因此不建议订阅过早的番剧。

以《我推的孩子》第三季为例,我的 主 RSS 是 LoliHouse,他们的命名方式是 S3 - xx 的格式,但不是每个字幕组都会这样提前做好剧集偏移的,因此在添加备用源的时候,我选择了 ANi 作为我的 备用 RSS 之一,此时我就要手动设置 剧集偏移 为 -21,这样下下来的剧集才会正确地命名为 S3Exx 的格式。

扫描入库和美化功能
我使用 Jellyfin 作为媒体服务器,同时搭配 Fontinass 解决大部分可能遇到的字体缺失问题。
通过 Docker 部署
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
volumes:
- ./config:/config
- ./cache:/cache
- /mnt/data/bangumi:/bangumi
restart: 'unless-stopped'
environment:
- JELLYFIN_PublishedServerUrl=https://jellyfin.example.com
entrypoint: sh -c "sed -i 's#</div></body>#</div><script src=\"https://cdn.jsdelivr.net/gh/Izumiko/jellyfin-danmaku@gh-pages/ede.user.js\" defer></script></body>#' /jellyfin/jellyfin-web/index.html && exec /jellyfin/jellyfin"
fontinass:
image: riderlty/fontinass:latest
container_name: fontinass
ports:
- 8012:8012
volumes:
- ./fontinass_data:/data
- ./fontinass_fonts:/fonts
environment:
- EMBY_SERVER_URL=http://jellyfin:8096
其中,jellyfin 是 Jellyfin 的 Docker 镜像,fontinass 是 Fontinass 的 Docker 镜像。
/mnt/data/bangumi 是我们挂载番剧的路径,你应当根据自己的实际情况进行调整。
我修改了 jellyfin 的 entrypoint,在其 Web UI 中注入了弹幕插件,如果你不需要这个功能的话,可以直接注释掉 entrypoint 这一行。
fontinass 是一个实时将字体子集化后嵌入 ass 的小工具,有助于我们在未安装字体的设备上显示具有字体的字幕。
安装和配置插件
添加插件源
在打开 控制台 - 插件 - 管理库 中,添加 Bangumi 插件源,地址为 https://jellyfin-plugin-bangumi.pages.dev/repository.json,随后安装 Bangumi 插件。
配置刮削
选择 添加媒体库,选择完内容类型和文件夹后,配置媒体库设置,你可以直接参考我下面的配置。

对于 元数据下载器,我推荐优先使用 TheMovieDB 作为数据来源(尽管对于多季番剧的支持似乎不是很好,有的会被塞到一季里面,都是日本人害的.jpg),Bangumi 只是作为补充。
剩下的事情,就是去泡杯咖啡(笑,然后等待刮削完享受番剧就可以了!
后记
这次搭建的比我想象中顺利很多,但还是有一些小问题(比如日本人不分季导致 TheMovieDB 和 Bangumi 都可能获取不到多季番剧的标题),希望后续能够得到改善。
实际上,fontinass 还有很多没有说的,比如说如果你动手能力强可以不用它内置的反代之类的,,,,,,
但总之,该先享受追番时刻了(笑
参考资料
首发于 Bingxin Blog 和奶昔论坛,CC-BY-NC-SA 4.0 许可协议。