时光荏苒,从我写下《AutoBangumi:自动追番,解放双手》一文至今,已两年有余。作为一款专注于自动下载订阅番剧的工具,AutoBangumi(AB)能够通过 RSS 订阅下载最新的番剧,并按照媒体程序的标准重命名视频文件;对于同时订阅了多个字幕组的番剧,它还能在重命名后以覆盖旧文件的方式实现简单的洗版。相比手动下载和重命名,确实是要方便得多。
然而,经过这八个季度的连续使用,我可以负责任地说,如果只是简单地追番,AB 提供的功能是足够的,可另一个事实是,目前的 AB 还算不上实现了「全自动追番」的所有基础功能。
例如,有时为了能第一时间观看最新一集,我会选择订阅 ANI 的 RSS 源;但一般情况下,我更倾向订阅 Nekomoe Kissaten、LoliHouse 或其他字幕组的简繁日内封字幕的资源,观看这些字幕显示效果更佳的版本。ANI 下载的是版权方 .mp4
格式繁体字幕的资源,字幕组通常是 .mkv
格式(少数为 .mp4
格式),而最后我只会保存字幕组的资源——这就涉及到「洗版」,即用质量更优的版本现存版本。AB 只能通过覆盖同名文件的方式进行洗版,这要求视频名称和格式完全一致。显然,对于格式不同的情况,AB 就无能为力了。我曾尝试过使用 MoviePilot 进行追番,但程序本身不支持 BT 资源不说,洗版相关的功能也并非为番剧而设计,断断续续测试了一个月后,还是用回了 AB。因此每隔一段时间,我都得手动删除通过 ANI 订阅下载的资源。
另一个让我颇为头疼的问题是「剧集偏移」。AB 一直无法实现剧集偏移相关的功能,即当某部番剧剧集的编号与实际发布顺序不一致时,重命名时需要加减「偏移量」来校正,以匹配视频元数据库。例如,《关于我转生变成史莱姆这档事》采用了连续编号的策略,虽然现在播放的是第 3 季,但第 1 集的编号却是第 49 集。为了正确重命名为 关于我转生变成史莱姆这档事 S03E01
,需要在重命名前减去「48」。对于这类存在剧集偏移的番剧,我只能手动重命名。
总而言之,AB 在洗版和剧集偏移方面的功能缺失,使得在追番过程中仍需要手动调整订阅。再加上其自身存在的某些久未修复的 bug(例如掉线无法重连),只有在准备看番的时候才能发现,「哦,原来 AB 又挂了」。尽管只是点个重启按钮的小事,但等待下番的工夫,好不容易空出来的时间,就可能白白浪费掉了。
唉,是否有其他工具能帮助我更愉快地追番呢?就在我一筹莫展之际,群友向我推荐了 ANI-RSS。
关于
ANI-RSS(ASS)是一款基于 蜜柑计划 的全自动番剧下载工具。
与 AB 一样,ASS 也是通过 RSS 订阅番剧,调用 qBittorrent(另支持 Transmission、Aria2)下载番剧。但 ASS 无需注册蜜柑计划账号,亦无需在蜜柑官网订阅番剧,订阅的所有操作均在程序内进行。另外,ASS 不完全依赖蜜柑计划,使用 DMHY / NYAA 亦可订阅下载,只是综合效果及使用体验,还是蜜柑计划最优。
与 AB 不一样的是,ASS 支持剧集偏移,并且可以自动识别偏移集数;支持配置不同的 RSS 订阅链接并自动洗版;在将番剧文件夹挂载至 ASS 的前提下,可以自动跳过已下载文件;假如设置了做种规则,在完成做种任务后,还可以自动删除种子。再加上简单明了的操作界面、按星期分类的番剧卡片,移动端也能方便订阅(基础设置还是需要在 PC 上准备好),随时随地都能添加新订阅。至于代理、使用 TMDB 的标题、获取年份、Telegram 和 WebHook 通知等等 AB 原有的功能,更是精益求精。
废话不多说,让我们开始吧!
本文主要介绍 ANI-RSS 搭配蜜柑计划及 qBittorrent 的使用方法。
安装
安装 Docker 及 Docker Compose 的步骤我就跳过了。实在不会可以参考 AB 一文 [安装 Docker & Docker Compose] 的环节自行研究一番。
首先,创建一个文件夹,比如 ANI-RSS。顺便创建一个 ass、一个 qb 文件夹用于存储数据:
接着,在本地创建一个 compose.yml
,复制粘贴以下内容:
services:
qb:
image: superng6/qbittorrentee:latest
container_name: qb
ports:
- ${QB_PORT}:${QB_PORT} #qb端口
environment:
- PUID=${PUID}
- PGID=${PGID}
- WEBUIPORT=${QB_PORT}
- TZ=${TZ}
volumes:
- ./qb:/config
- ${Bangumi_Location}:/bangumi #番剧挂载路径
restart: unless-stopped
networks:
- ani-rss
ani-rss:
image: wushuo894/ani-rss:latest
container_name: ani-rss
ports:
- ${ASS_PORT}:${ASS_PORT}
environment:
- PORT=${ASS_PORT}
- CONFIG=/config
- TZ=${TZ}
volumes:
- ./ani-rss:/config
- ${Bangumi_Location}:/bangumi #番剧挂载路径
restart: unless-stopped
networks:
- ani-rss
networks:
ani-rss:
external: true
鉴于 qBittorrent 和 ani-rss 有不少共用变量,因此再创建一个 .env
文件存储这些变量,后续有修改在这个文件中操作就好:
PUID=1026
PGID=100
TZ=Asia/Shanghai
QB_PORT=8989
ASS_PORT=7789
Bangumi_Location=/volume1/bangumi
上面提供的是群晖的配置。关于 PUID
和 PGID
,DSM 用户默认主账户的 UID
和 GID
为 1026、100,其他用户需要在终端中使用 id
查看自己所属的 ID。例如:
$ id
uid=1026(mikusa) gid=100(users) groups=100(users),101(administrators),65536(docker)
挂载路径则需要具体到以 /volume
开头,例如 /volume1/bangumi
。
Windows 用户请将 PUID
、PGID
设置为 0,即 PUID=0
、PGID=0
,否则 qbittorrent 可能因为权限不足而无法下载;番剧挂载路径不能直接使用 E:\Bangumi
,需要写为 /E/Bangumi
。
或者,建议 Windows 用户使用 exe
程序直接运行。在 release 页面下载 exe 程序运行,同时 qBittorrent 也使用 exe 程序。
然后把 .env
、compose.yml
这俩文件上传到 ANI-RSS 文件夹里。
最后,打开终端登录 SSH。建议使用非 root 用户操作:
创建一个名为 ani-rss
的网络:
docker network create -d bridge ani-rss
进入 ANI-RSS 文件夹:
cd /volume1/docker/ANI-RSS
持续化启动:
docker compose up -d
配置
qBittorrent
打开 http://localhost:8989 配置 qBittorrent。
qBittorrent 的密码需要在终端中查看,使用以下命令查看容器日志:
docker logs qb
输出如下:
$ docker logs qb
2024-10-03 18:49:39 - INFO - Configuration updated successfully.
WebUI 将在内部准备不久后启动。请稍等…
[ls.io-init] done.
******** 信息 ********
要控制 qBittorrent,请访问下列地址的 WebUI:http://localhost:8989
WebUI 管理员用户名是:admin
未设置 WebUI 管理员密码。为此会话提供了一个临时密码:y2rSfyj38
你应该在程序首选项中设置你自己的密码
登录 qBittorrent 的用户名即为 admin
,临时密码为 y2rSfyj38
。
由于 qBittorrent 只是作为下载器,不承担订阅 RSS 的角色,因此:
- 为不完整的文件添加扩展名,设置默认保存路径到
/banguimi
- 随机一个连接端口,开启 UPnP 转发
- 修改一下管理员密码
找个种子测试确保能正常下载,qBittorrent 就能用了。
下面是 ASS 的配置,我就不再新建二级标题了。
登录设置
打开 http://localhost:7789 配置 ASS,ASS 的默认账户密码均为 admin
。
如果你计划在公网中使用,需要在 设置 -> 登录设置 中修改密码;如果你只想在内网中使用,那么可以开启「IP 白名单」,填写跳过身份验证的 IP,比如 127.0.0.1
。
下载设置
接着,在下载设置中填写 qBittorrent 的相关信息。如果你完全参照本文安装的 ASS 和 qBittorrent,那么在地址一栏,可以直接使用 qb:8989
登录。
保存位置这里,需要填写容器内部的路径,即 /bangumi
。
剧场版我暂时用不到,也还没有机会测试,因此留空。但如果后续有订阅剧场版的话,会默认使用上面配置的 番剧保存位置 。
为了配合洗版,自动删除需要打开。
由于我是媒体程序用户,Plex、emby 不支持二级文件夹,我个人也有强迫症。因此不启用拼音首字母、季度存放。这两个更像是 Windows 纯本地文件夹追番的用户需要的功能。
正常订阅番剧的话,应该是不会一次性下载太多的,因此不做下载数量的限制。如果 NAS性能不足,请设置为 1 或 2,并在 qBittorrent 端关闭做种。
检测死种需要打开。但一般情况下新番是不会存在死种的情况,除非字幕组撤回发布停止做种。
我个人是非常不建议使用 AB 或 ASS 等工具订阅老番的,一是老番的种子随着时间的推移,公网极有可能死种;二是老番在放送过后会发行光碟,字幕组在后期也会校正字幕错误、或优化字幕效果以匹配光碟,你可以选择这些质量更好的资源观看。
修改任务标题一定要开,否则后续使用备用RSS的话会出现各种各样奇奇怪怪的bug。
qb保存路径就保持默认的吧。我至今不知道这个开关是干啥用的,哦我完全懂了.webp
基本设置
全部打开后,可以像本文第一张图片那样展示精美的番剧卡片。
如果你是在追番途中才开始使用 ASS,可以打开「只下载最新集」的开关。
标题添加年份、自动推断剧集偏移、TMDB标题这些都要打开。同名剧集需要靠年份区别、剧集偏移是 ASS 的精髓、TMDB标题对于 emby 用户更是重中之重。
至于全局排除,就算你不设置,ASS 也会默认导入 720
、\d{1,2}-\d{1,2}
(匹配像 1-2
、12-34
、03-05
等格式的种子)、合集
、特别篇
这些排除规则,所以不用刻意开启它。可以在添加订阅默认规则排除不了的时候,导入一次排除规则。
重命名设置这里,需要开启「自动重命名」,季命名方式根据自己喜欢选择,可以设置为 Season 1
、S1
,或者为空。但不建议为空。
重命名模板保持默认,别随便去动它。或者某些同学可能有增加字幕组的需求,可以在末尾加上 -${subgroup}
。
RSS 开关肯定是要开的,RSS 刷新间隔也保持默认。但这个「自动跳过」需要关闭,否则配合底下「备用 RSS」的时候,会因为已经下载过而不会自动洗版。
其余开关都可以打开,但使用「备用 RSS」有很多注意事项:
- 首先,不能将 动漫花园 的 RSS 用作备用 RSS,也不能为 动漫花园 的 RSS 配置备用 RSS。
- 其次,开启「备用 RSS」的同时,需要在下载设置中开启 qBittorrent 的 修改任务标题 功能。并且这个功能对 Transmission 的兼容性不太好,且不支持 aria2。
- 最后,需要在下载设置中开启 自动删除 ,才会 自动替换 备用 RSS 为主用 RSS 的版本。这需要 ASS 与下载器的映射路径完全一致,否则当备用 RSS 为
.mp4
、主用 RSS 为.mkv
时,无法完成自动删除旧视频。
最后这里可以修改蜜柑计划的地址,比如改成 https://mikanime.tv/ ,或是其他镜像地址。
自动点格子我用不到,我有强迫症一定要自己点。
禁止公网访问可以开启,但前提是出门在外有访问回家的手段。
全局排除
我目前配置了这些,你可以当作参考:
720 繁日双语 JPTC 内嵌 BIG5
或者参考《自用Autobangumi排除规则》针对各个字幕组作详细的排除规则。
代理设置
填写代理的 IP 和端口,启用后测试有正常结果就行。
通知设置
Telegram 新建 Bot 这里需要你自行谷歌搜索相关创建方法,然后依次填入 Token 和 ChatID。
邮件通知请参考 官方文档 。
WebHook 是我不怎么会用的功能,所以也需要你自行琢磨。
使用
终于,到了使用这一步了!我截了这么多图也有些累了。
配置的过程其实并不复杂,订阅更是十分简单。但在开始订阅之前,还是需要确保一下网络方面畅通无阻。
请测试是否能打开以下网站再开始订阅:
- TMDB:https://www.themoviedb.org/
- Bangumi:https://bgm.tv/
- 蜜柑计划:https://mikanani.me/
添加订阅
点击右上方添加按钮进行订阅。你可以直接在地址栏内填写蜜柑计划上复制的字幕组 RSS 订阅链接,或者点击右侧的 Mikan 按钮浏览当季番剧列表,选择心仪的字幕组订阅。
你还可以在直接在列表中浏览往期新番,订阅已完结的番剧。但不要订阅太早的番剧,避免种子无人做种下载失败。
另外,在确定订阅前,一定要点击「预览」,查看一下文件夹路径和重命名名称是否无误,再保存订阅。
剧集偏移
那么剧集偏移的情况怎么办呢?这里抓一个典型,本季播出的《Re:从零开始的异世界生活》第三季。RE0 在 TMDB 中只有一季,所以需要设置剧集偏移;虽然是第三季,但这一季的名字其实叫作《Re:从零开始的异世界生活 袭击篇》,与 TMDB 是不匹配的,还需要手动修改文件夹名称。因此,在订阅编辑页面,你需要手动调整剧集标题以及偏移量。
关于正确的标题,有两种做法:
- 打开 https://www.themoviedb.org/ 搜索后,手动将正确的
Re:从零开始的异世界生活 (2016)
粘贴进标题栏里 - 删除疑似多余的
袭击篇
,但不能删除年份,否则刷新后获取不到年份(如果你不需要年份,那么只要获取到正确的标题就行。但鉴于有同名的情况,还是请带上年份)
无论选择哪种方法,都需要点击一次 TMDB 右侧的刷新按钮,获取到正确的标题以及年份,再点击「使用 TMDB」才能获取到正确的标题。
然后调整季度、集数偏移量。不用管自定义下载的内容,我们点击一次预览,只要预览内重命名后的信息是正确的,就可以保存订阅了。
请看 VCR:
ASS 的「自动猜测偏移集数」的功能,是根据当前订阅源的第一集序号推断的。一般情况下没什么问题,不过也有例外。例如《【我推的孩子】》第二季虽然是 12 集开始,但 TMDB 中归类到第一季,且大部分字幕组都没有命名成第一集。因此只要调整季度,无需增加集数偏移。
备用 RSS
在新增订阅时、或是在现有订阅中,均可以添加备用 RSS。
还是《【我推的孩子】》,字幕组更新到了第 22 集,Ani 更新到了 24 集。如果急着看更新的话,可以把 Ani 的 RSS 订阅添加到 备用 RSS 配置中。
添加备用 RSS 的方法和添加主 RSS 一样,直接填写 RSS 链接,或者浏览列表选择一个导入。保存之前预览一下是否能正确抓取,否则需要调整过滤规则。
最后等待 ASS 抓取订阅自动下载即可。后续若主 RSS 有更新,ASS 会自动下载主 RSS 订阅,并删除备用 RSS 的旧版本,完成洗版。
切记要开启自动删除,关闭自动跳过!否则无法洗版!!
其他技巧
误删除本地文件
假如你在正常订阅并正常下载的情况下删除了本地文件,这时候想再在 ASS 中刷新订阅是无法恢复下载的。需要预览中找到对应的种子,然后删除它。
之后再点击刷新订阅,才会重新抓取订阅并推送下载。
程序更新
ASS 支持应用内检测更新,前提是与 github 的连接畅通无阻。
Docker 容器点击更新后会自动重启,无需重新拉取容器镜像。
exe
程序点击更新时,也会自动下载最新版本程序文件并自动重启。但目前有一个小问题:不会自动删除本地旧版本程序文件,只得手动删除。
最后
关于 ANI-RSS 的使用方法,目前就是这些内容了。不知经过我的这一番介绍,你是否对 ASS 产生兴趣了呢?虽然 AB 有不少问题,但所谓「长江后浪推前浪」, ASS 多少是踩在巨人的肩膀上,在顺着前辈的思路开发出来的。
嘛,总之快行动起来吧!现在就弃用 AB,投向 ASS 的怀抱,享受 ASS 带来的崭新的愉悦的追番体验吧!
参考
- 官方文档:ani-rss
本文作者:mikusa
本文链接:https://www.himiku.com/archives/ani-rss.html
封面出处:飞 / XilmO@夕末 #Pixiv
版权声明:所有文章除特别声明外均系本人自主创作,转载及引用请联系作者,并注明出处(作者、原文链接等)。
我用的是我自己手搓的,只有后端,目标是无感静默工作(实际是因为前端苦手),部分问题的解决方案和这两个工具略有差异:
番剧的订阅基于番组计划而非蜜柑,只要通过OAuth完成番组计划的认证,后续在番组计划点收藏的所有番剧如有更新,都会由程序自动完成对应资源的下载,蜜柑只作为主数据源内置在程序中
最大优势是管理观看进度和下载资源完全不需要在蜜柑和版谷米分别订阅,也不需要时不时复制RSS链接,更不需要注册蜜柑的账号。日常情况下只要在版谷米上动动小手点个心,番剧随后就能下好
剧集偏移严格参考番组计划的数据。番组计划对于剧集编号的字段一般有两个:ep和sort,sort一般是正常从1开始而ep可能存在偏移(例如从13开始)
程序将根据该信息自动计算偏移量,并将所有剧集编号同番组计划的ep字段保持统一
洗版并非采用备RSS替换主RSS的方式,而是基于自定义的优先级数据选择资源。
一般优先级数值越小则越高,对于同一部番剧同一集的不同发布源,选择高优先级的下载,也可用更高优先级的资源替换低优先级的资源
因此洗版可以在同一个RSS源内发生,且功能更强大更灵活
目前所支持的优先级如下:
1) 发布源优先级,是在长期观看过程中积累的经验,优先级越高的发布源质量应当较高,通过关键字匹配。未定义的发布源优先级为100,000,个人的配置为:
"喵萌奶茶屋": 1
"LoliHouse": 1
"桜都字幕组": 1
"Baha": 2
其余发布源优先级保持为100,000
2) 字幕语种优先级,以用户对不同翻译后语种的熟悉程度作为优先级。个人的配置为:
"chs": 1
"cht": 2
"en": 3
"raw": 100000
3) 视频分辨率优先级,例如 720,1080,2000(2K),4000(4K) 等,这里优先级越高的数值越大
同时还有一票否决制设计,例如,当某个资源清晰度不足1080P时,则无论其发布源、语种如何,优先级一律为最低
程序使用内置的蜜柑RSS作为主RSS,但同时也支持配置备用RSS
此处的备用RSS并非用于洗版,而是在蜜柑RSS挂掉的时候用于备份
由于蜜柑的最大优势是将资源和番剧名称强关联,而备用RSS并无此优势,因此程序包含了基于蜜柑数据的标题猜测功能
一般来说,固定的发布组会在多个平台发布资源,且标题大致类似。因此,如果确定了其中一个资源标题对应的番剧名,则后续资源标题可通过字符串相似度匹配的方式确定对应的番剧名。
例如,喵萌字幕组出品的母鸡卡第1集资源名称为:
【喵萌Production】★01月新番★BanG Dream! Ave Mujica1080p[招募翻译]
则后续资源名称大概率是:
【喵萌Production】★01月新番★BanG Dream! Ave Mujica1080p[招募翻译]
【喵萌Production】★01月新番★BanG Dream! Ave Mujica1080p[招募翻译]
【喵萌Production】★01月新番★BanG Dream! Ave Mujica1080p[招募翻译]
……
即便蜜柑RSS挂掉,只要喵萌字幕组还在别的平台上发布资源,也可被程序准确识别,同时也能降低蜜柑服务器的负荷
实际上会对标题进行预处理,匹配相似度阈值也需要调整
此处其实还可以通过接入生成式AI实现,但考虑到稳定的生成式AI接口价格不菲,或者需要花时间和精力自己找接口等等原因,综合体验不佳(不然这些工具肯定都会以生成式AI为主解析资源信息,且完全没必要依赖蜜柑)就没有实现
实际上我试过直接接入我自己写的通用推送接口(融合企微机器人、TG、短信和邮件等),发现即便是只推剧集更新,推的也很多
个人不喜欢看到很多通知,尤其是工作的时候提醒我看番,非常烦
后来我在程序里加了RSS订阅源生成器,把下载日志和剧集更新信息分别做成了2个RSS源,让qbittorrent订阅
这样每次想看番的时候直接进qbittorrent的RSS订阅页面查看每日更新即可
遇到了一个问题:在windows上通过docker配置完成以后,订阅番剧并开始下载(确实在下载),但是qb在http://localhost:8989/中的下载却为空白,没有项目出现。大佬知道怎么解决吗
要两边日志都看看才能知道为啥
刚才试了的结果是用127.0.0.1:8989就能看到下载,localhost:8989看不到(+_+)?
那就用 127.0.0.1:8989 完事
遇到了个问题欸,在添加“期待在地下城寻求邂逅有错吗第四季”的时候,有迷宫篇和灾厄篇两部分,分别对应第4季的1-11和12-22,添加迷宫篇之后再添加灾厄篇就会提示名称重复,添加不了,大佬知道怎么解决吗
在 tmdb 上这俩同属一季,因此应该都放在
里面。也就是订阅完上半之后,把下半的 RSS 链接丢进备用订阅里就完事了。记得把总集数改成22。
不过话又说回来,第四季应该有质量更优的 bdrip 了,不该用 ass 订阅下载(
谢谢大佬,搞明白了
太棒了!干翻 ab,ani-rss永存!希望不要学ab作者!
用群晖的如果qBittorrent日志显示
mkdir xxx目录的文件 Permission denied
,那么给qBittorrent容器的PUID和PGID也都改成0就可以了,用原来的1026和100的时候我出现了权限不足的情况,不确定是我以前配置的有问题还是什么,ANI-RSS也提供了另一个解决办法chmod -R 777 /Media
应该是需要进去qBittorrent容器内修改对应挂载的文件夹权限,我没试
分享一个随便改的通知样式,需要打开telegram通知的HTML格式:
另外在GitHub上搜到一个用来整理动画合集的命令行工具,然后用AI搓了个简陋的脚本方便使用,建议把下载的
Bangumi_Auto_Rename.exe
程序和本脚本放到同一目录下,脚本运行会将参数写入到脚本同目录的config.json
中,如果后续需要修改参数可以直接到这个config文件中编辑,或者直接删除让脚本重新生成,Windows运行需要先去Windows应用商店下载Python,下面是脚本内容,复制后保存为Bangumi_Auto_Rename.py
文件,在CMD中直接运行python Bangumi_Auto_Rename.py
看起来不错诶,找个机会试试,感谢分享!Thanks♪(・ω・)ノ
大佬请问,我配置后qb下载文件到incomplete文件夹中,ani-rss没有再移动文件到相应文件夹了,是哪里设置有问题呢
是不是qb里没有启用临时下载路径?
又有新方案啦,我又来啦!
ΦωΦ 感觉ani-rss是更好用点
请问ani-rss配置到最后一步,想要订阅mikan的rss的时候提示dns解析出错,该如何排查解决?
上代理
了解了,测试了下mikanime.me没法直连,换mikanime.tv之后就可以了。感谢大佬指点
autobangumi之前就是参考你的设置的,找到anirss,就想着再看看,结果你又写了,哈哈哈