利用XArr-Rss辅助Sonarr实现自动化追番
纪念
2022年05月09日 00:04

更新:

2022.05.14 补充原作者更新视频教程、官方wiki链接。

2022.07.22 基于当前最新版V1.5.4重新修改本教程,追加1.2~1.5新增功能及赞助会员相关功能的讲解。

背景

前段时间,up主自己研究并搭建了一套影音自动化系统,最后暂时定型为Overseerr+Prowlarr+Radarr+Sonarr+qBittorrent+XArr-Notify+Plex。关于这套系统的搭建本文暂时不再展开叙述,站内和网络上已经有一些相关教程,各位可以自行查找。

原计划是打算用Sonarr作为新番动画的追番管理器和监控下载服务,但在实际使用中,发现了一些问题以至于预期的流程没有顺利执行,其中最为主要的问题有以下几点:

  • 由索引器提供的搜索结果里,大部分番剧因为发布的命名格式不被Sonarr识别,造成无法正常抓取下载。

无法识别剧集系列,导致版本被拒绝

  • 由索引器提供的搜索结果里,部分结果的语言被识别为English或其它语言,如果Sonarr的Language Profile限制了只下载中文,那么也可能会错误拒绝掉一些实际上是内嵌中文的结果。

  • Sonarr的数据来源是tvdb,,番剧的别名来源于theXEM,对中文的支持并不好,在发给索引器进行资源搜索时,使用的是英文名或罗马音,如果字幕组的发布名称中没有包含英文名的话,就很有可能不会被搜索到,这也是很多人有时候用Sonarr搜不到资源的主要原因。

为了解决以上识别问题,我曾经使用Mikanarr来辅助Sonarr处理新番动画,但实际体验中仍有部分问题(Sonarr在导入时是根据字幕组发布命名来解析的季集,尤其是存在多季的时候经常分析错误,这是Sonarr的问题),且作者几乎不怎么维护项目,方案不够完美。

基于此现状,up找到XArr-Notify的作者,从实际需求出发,开发了本次介绍的主角XArr-Rss来帮助辅助Sonarr识别,完成自动化追番的最后一块拼图。


XArr-Rss简介

XArr-Rss可以简单理解为一个RSS转换器,它可以将各个BT/PT发布站点的RSS内容转换成Sonarr能正确识别的RSS内容。它在整个自动化流程中扮演索引器的角色,定位与Prowlarr、Jackett类似,主要针对日本动画尤其是新番着重做了优化,可以和其它索引器互为补充。

运作流程如下:

XArr-Rss作为源站和Sonarr之间的桥梁

它能够支持多个数据源聚合和多种匹配规则,正确识别网络上绝大多数日本动画资源以供Sonarr抓取下载。

目前软件还处于快速迭代中,所以更新较为频繁,本文以V1.5.4版本为例介绍核心功能,后续新增的部分外围优化功能需要自行摸索~

附上官方wiki文档,可与本文结合食用效果更佳:

https://xiaoyi510.github.io/xarr-rss/

软件官方网站:

https://xarr.52nyg.com/


特点

  • 本地化:界面及相关设置全中文,美观易用。

  • 匹配规则自定义:可完全自定义匹配规则,无论发布组使用何种标题格式都可以精准识别,直接解决Sonarr一直以来的中文识别难题。赞助会员更可实现全自动生成识别规则,无需人工干预,成功率很高。

  • 可联动下载器改名,直接解决因Sonarr下载后在导入时解析季度有误,导致移动目标季度文件夹不正确的问题。

  • 开发者超能肝,bug修复非常快,人好。


安装

XArr-Rss提供了Docker镜像:https://hub.docker.com/r/xiaoyi510/xarr-rss

如果是Windows/Linux用户

需要挂载本地路径到容器 /app/conf ,映射本地端口到容器 8086,可参考如下命令:

代码块
JavaScript
自动换行
复制代码
#先将镜像拉到本地
docker pull xiaoyi510/xarr-rss

#在powershell或终端运行如下命令创建并启动容器
docker run -d --name xarr-rss -e TZ=Asia/Shanghai -p 8086:8086 -v 你的本地路径:/app/conf --restart unless-stopped xiaoyi510/xarr-rss:latest
复制成功

如果是群晖用户

1、打开Dokcer

2、打开注册表

3、搜索 xarr-rss

4、双击下载镜像

5、打开映像,双击xarr-rss

6、高级设置-存储空间,将本地目录映射到容器内的/app/conf

7、端口设置-本地端口8086(根据自己喜好可修改),容器端口8086,类型TCP

如果是Unraid用户

提供两个unraid 模板,执行命令下载即可

原作者节点

curl -sSL https://xarr.52nyg.com/unraid-template/config.sh | sh

人生观节点

curl -sSL https://file.lxg2016.com/assets/docker/xarr-rss/config.sh | sh

模版安装完成后进入Docker添加容器,然后设置一个自己喜欢的端口号即可


使用

启动容器后,我们在浏览器输入以下地址进入后台配置页面

http://你的域名或ip:8086/

此处也附上原作者制作的简易配置教程视频供参考:

1、登录帐号,如果没有XARR系列帐号可以先注册一个。

2、修改系统设置,改成上面登录后台地址的一致即可,需要Sonarr可以正常访问到该地址。

如果有修改端口号的需求也可以在这里修改监听端口,重启容器后生效。

3、修改服务设置,填入你自己的Sonarr信息、TMDB的ApiKey、qBittorrent  / Transmission的通信信息。保存后,XArr-Rss会自动从你的Sonarr获取你的监控列表,然后从TMDB获取中文数据,期间会存在一小会同步的时间。保存之后也可以点击测试按钮来测试配置是否正确(要先保存再点测试)。

注:TMDB的ApiKey需先注册一个TMDB帐号,然后进入帐号设置-API,申请ApiKey时选择Developer,随便填写一些英文信息就可以,拿到一个v3 auth的字符串。地址:https://themoviedb.org/settings/api

4、添加数据源,支持多个数据源同时存在,支持针对单个数据源配置代理。

你的资源从哪来就看这里配置了,注意Rss订阅地址需要填入的是网站生成的rss文件的地址,不是网站本身的地址。

常见的数据源网站可见此表格:https://xarr-doc.52nyg.com/xarr-rss/#/zh-cn/sources-site

个人最为推荐蜜柑计划。

5、在分组-管理分组里新增一个分组,名字随你喜欢。

手动添加(默认):免费功能。不会自动从sonarr同步新增的监控过来自动生成规则,需要给每部番剧手动添加匹配规则。

最新媒体:赞助会员功能。从创建此分组后开始监控sonarr是否有新添加的番剧监控,如果有则会自动处理生成泛用性匹配规则,正常情况下无需手动再给每部番添加匹配规则。(增量)

全量媒体:赞助会员功能。将sonarr全部监控都同步并自动生成生成泛用性匹配规则,正常情况下无需手动再给每部番添加匹配规则。(全量)

6、左边栏会自动刷新显示出刚刚新建的分组,进入分组。

赞助会员如果在上一步创建分组时选择了最新媒体或全量媒体,会发现此处已经给番剧全部生成了自动匹配规则,通常来说不用再调整,如果有筛选发布组需求可以只调整发布组过滤即可。

以下为免费用户的手动添加模式的说明

点新增后来到最为重要的规则设置界面,它是整个软件里最为核心的配置,后续我们最常使用的就是这里规则的创建。

选择Sonarr媒体:数据来自Sonarr监控列表,选择需要添加规则的番剧。

数据源选择:从哪里获取数据,支持多选。

语言:与Sonarr中的Language Profile对应,默认Chinese。用于Sonarr抓取到之后做语言匹配。(赞助会员填写-1,可以自动识别语言无需手动指定

质量:与Sonarr中Quality Profiles对应,默认WEBDL-1080p,可自行根据资源修改,需要与Sonarr的质量关键词对应。用于Sonarr抓取到之后做质量匹配。(赞助会员填写-1,可以自动识别质量无需手动指定

规则:一条规则包含四项内容:匹配类型、正则表达式/包含标题、偏移量、第几季。一个番剧下允许存在多条规则,这样就可以支持匹配多个发布组、亦可以对不同季度设置的不同匹配规则。

    匹配类型:1)正则表达式 2)全自动匹配标题(赞助会员可用)

    正则表达式(匹配类型选择正则表达式时显示):用于匹配资源发布标题,解决一直以来的识别难题。下面详细讲。

    包含标题(赞助会员功能,匹配类型选择全自动匹配标题时显示):用于填写关键词实现二次过滤。

    偏移量:详见下面常见问题中的Q2,有具体说明和举例。

    第几季:会根据所选媒体自动拉取最新监控的季度数,可自行修改。(赞助会员可以选择自动计算,无需手动指定

右侧数据栏:根据顶部所选数据源加载内容,用于复制发布标题和测试正则表达式的匹配效果。


着重讲一下正则表达式这一部分的操作流程。

不需要自己写正则表达式!不需要自己写正则表达式!不需要自己写正则表达式!

  1. 选择Sonarr媒体选择一个你需要做匹配的番剧。

  2. 数据源根据自己情况选,语言默认Chinese,质量可以默认也可以自己改。

  3. 在右侧数据源列表点击想要匹配的资源,提示复制成功,粘贴到正则表达式的输入框内。

  4. 点击“转义正则表达式内容”按钮 -> 选中标题里的集数数字 -> 点击“替换选择文本为集标记” ->测试匹配效果,提示成功即可。填写偏移量(一般默认为0即可)、选择第几季(默认为最新一季)如果是赞助会员可以点击“自动获取集标记”实现一键生成可用正则表达式,省去第4步的几次点击。

1->2->3->4

提示匹配完成并展示了转换结果,表示规则正确

这样一条规则就创建完成了,我们可以给每部番剧都添加上规则,每部番剧支持添加多条规则。最后点击右下角的提交。


7、给每个番剧设置好匹配规则后,回到左边栏-管理分组,点击刷新Rss文件。

刷新后点击Rss链接,检查是否生成转换后的rss,单个分组或者全部分组的都可以。

可以看到程序已经自动从数据源中过滤并转换出了Sonarr能够正确识别的内容。

8、点击分组后面的“创建Torznab索引”,程序会自动帮我们在Sonarr中添加一个Torznab类型的索引器。或者点击黄色的"一键创建Sonarr全部分组Torznab索引&#​34;

可以看到Sonarr的索引器里已经添加。

9、所有配置流程完成,后续Sonarr就可以自动通过RSS正确抓取资源啦!


常见问题

Q1:为什么通过XArr-Rss生成的分组Rss没有内容?

A1:XArr-Rss只会生成出能够匹配上你设定好规则的内容并加以转换,如果源RSS中没有能够匹配规则的内容则生成为空。首先检查源RSS中是否包含你想下载的内容。

如果你确定规则无误且源RSS也有应当能匹配上的数据,也有可能是后台还未刷新缓存导致,可以手动刷新RSS文件后重新打开。

Q2:偏移量是什么?

A2:默认为0无需更改,此设置项仅特殊场景下使用,用于配合字幕组编号规则,调整集数前后移动。

举例说明:由幻樱字幕组翻译的《古见同学有交流障碍症》第二季第一集,字幕组从13集开始继续编号,发布标题为

【幻樱字幕组】【4月新番】【古见同学有交流障碍症 Komi-san wa, Komyushou Desu.】【13】【GB_MP4】【1920X1080】

如果偏移量为默认值0,则转换后的RSS的季度和集数为S02E13,变成

Komi Can't Communicate - S02E13 - Chinese - WEBDL-1080p

而Sonarr只会寻找S02E01的资源,无法触发自动下载,因此需要设置偏移量为-12,这样转换后的RSS的季度和集数为S02E01,此时Sonarr可以正常抓取并开始下载。

Komi Can't Communicate - S02E01 - Chinese - WEBDL-1080p

Q3:现在支持哪些站点?

A3:截至本文发布之时,已适配支持蜜柑计划、萌番组、爱恋动漫、ACG.RIP、动漫花园,其它站点陆续适配中。理论上支持RSS的站点都可以用本软件做转换处理

Q4:分组如何使用?

A4:通常只设置一个分组已经可以满足日常需求,如需将不同分组的番剧区分到不同的链接以作他用,可以创建多个分组。

Q5:服务设置里填写的qBittorrent配置有什么用途?

A5:当Sonarr通过XArr-Rss抓取到种子后,会发送给qBittorrent进行资源下载,同时也会通知XArr-Rss,XArr-Rss会自动将下载任务重命名为转换后的英文标准格式标题,帮助Sonarr在后续导入时正确识别第几季第几集。

小知识:Sonarr的抓取和导入解析器是独立的两部分,前面RSS转换解决的只是抓取问题,如果不在qBittorrent中进行改名,Sonarr下载完导入时会再次根据种子里的文件名进行解析,从实际体验上来看对于第二季第三季等多季动画的识别成功率几乎为0,所以经常会出现明明是第二季的资源,却被Sonarr放到了第一季的文件夹。XArr-Rss通过修改任务名的方式避免了此问题。

Q6:支持其它下载器吗?

A6:当前已支持qBittorrent、Transmission,后续计划支持其它下载器,如rutorrent等。


个人经验分享

  • 如果你使用蜜柑计划,日常追番只需配置数据源为 列表模式(最新发布的第一页) 或 带有个人token的订阅链接(个人订阅中的最近7日的更新) 就够用了,一旦新的一集发布,就会自动捕获并被Sonarr抓取下载。

  • 如果部署好此项目时番剧已经开播一段时间,想要批量下载多集,可以添加一个数据源,链接为这个番剧自己的RSS地址,然后编辑规则时勾选这个番剧自己的数据源即可拉取到全部已发布的资源。

  • 每季度新番只需要在第一集资源发布后,在XArr-Rss的管理界面给番剧添加一次规则即可,后续字幕组/发布组只要不改变标题格式,就可以一直抓取到,无需再次管理。如果是赞助会员基本不用专门管理规则,程序会全自动生成。

  • 从原理上来说,此软件不仅仅针对日本动画,对于国漫、国产电视剧同样可以做规则匹配。


赞助会员说明及功能

赞助会员是原开发者推出的增值服务,实现了一些“偷懒”功能,依靠程序自动同步和生成匹配规则,可以最大化程度上实现真·自动化。当然,免费用户的功能也足够使用。

与免费用户的区别主要如下:

  1. 赞助会员可使用种子分析器,对于动漫花园等rss内容未给出种子hash值的网站,可以自动解析出种子的实际hash值,实现自动改名。

  2. 赞助会员可实现对磁力连接的监听,像动漫花园这样提供磁力的网站,普通用户无法使用,赞助会员正常。

  3. 赞助会员可以自动同步sonarr新增监控并智能生成匹配正则规则,免去每个番剧一条条手动创建的麻烦。

  4. 赞助会员可以自动解析影片质量、语言、季度等信息,且识别率成功率很高。

  5. 赞助会员添加无限个数据源、可创建无限个分组。免费用户限制3个。


总结

XArr-Rss的出现,解决了长期以来Sonarr无法识别动画命名的问题,在Sonarr本身对中文支持一直不佳的情况下,提供了非常强大的匹配规则,非常适合日常追番使用。

最后让我们来梳理一下,在系统配置完成后,平时想看一部新番我们需要哪些步骤:

  1. 在Overseerr/Ombi等前端提交请求,或直接在Sonarr添加番剧到监控列表。

  2. 在XArr-Rss的分组里添加这部番剧的规则。(只需要在每一季第一集开播后配置一次,赞助会员可略过本步骤)

  3. Sonarr自动抓取-下载-导入-改名-通知一条龙。

  4. 在Plex/Emby/Jellyfin中观看视频。

以上,感谢阅读,如有任何问题,欢迎在评论区讨论。

bug及使用问题欢迎在github上提出:

https://github.com/xiaoyi510/xarr-rss/issues