临近过年,感觉目前家里的动漫追番方式被Emby略显呆呆的刮削准确率影响了体验,加上nas-tools久闻大名,于是就撸起袖子把它摸了个大概。
部署容器前的注意事项
首先来聊聊部署容器前的一些注意事项:
1.群晖的docker容器部署时,NASTOOL_AUTO_UPDATE
和 NASTOOL_CN_UPDATE
这两个参数默认是true,所以不用手动指定
2.nas-tools的核心功能之一 目录同步
。它有几种常用的同步方式:复制、硬链接、软链接、移动,其中除了硬链接,其他三种方式都可以跨物理硬盘、软件上的存储空间、甚至是网络挂载的smb共享路径等等,唯独硬链接比较特殊,所以使用硬链接模式进行目录同步的朋友记得一定要看完下面的说明。
官方说明
硬链接模式要求源目录和目的目录或媒体库目录在一个磁盘分区或者存储空间/共享文件夹,Docker运行时需要直接映射源目录和目的目录或媒体库目录的上级目录,否则docker仍然会认为是在跨盘。
一般我们的追番流程是希望订阅后自动下载,然后下载完毕后自动“转移”到目的路径,让Emby、Jellyfin、Plex之类的媒体库工具扫描整理,换句话说我们会用到“下载路径”和“媒体库存放路径”,以我自己的目录结构举例。
原本我的打算是订阅后让qbittorrent下载到 /downloads
,然后目录同步到/medias,但是这种情况nas-tools的硬链接模式认为这是跨盘
所以需要更改为上面这样的目录结构(在docker的volume挂载里,我个人挂载成 /medias:/media
)
相对应的目录同步设置变成这样:
部署容器的过程就不写了,关注的点只有 /config
配置目录持久化存储,以及上述注意事项里目录同步的挂载路径
web管理界面的默认登录账号和密码分别是 admin
和 password
(官方wiki居然没写)
nas-tools
功能概览
完整菜单如上 (v2.7.6):
开始
主要是设置里对接媒体库后会展示相关信息,包括电影多少部,电视剧多少部,存储空间情况,近期活动等等
推荐
nas-tools内置的一些信息推荐推送,包括tmdb电影信息(近期上映、热映等)、bangumi网站的一周动漫番剧
资源搜索
顾名思义。在设置中配置好TMDB的api key
从TMDB那搜索资源并展示在这里,与整个web界面顶部偏左位置的搜索框功能一样
站点管理
主要用于PT站,这一模块功能我没有需求,暂时写不出什么介绍
据一些大佬描述应该可以用来管理PT站账号并创建一些自动刷流的工作流
订阅管理
基于TMDB的元数据,对rss订阅进行处理。
1. 电影订阅:顾名思义,在订阅TMDB分类为电影类型的资源时会自动归档到这里
2. 电视剧订阅:同上,日本动漫番剧也属于这个分类
3. 自定义订阅:用户可以在这自定义上面两项无法“处理”的rss订阅
4. 订阅日历:根据前两项功能自动在日历上生成对应的订阅跳转“便利贴”,同时也方便查看追踪电视剧更新情况
下载管理
1. 正在下载:在设置-下载器中配置好对接下载软件的话,这里会实时显示下载任务情况,也能新增、管理下载
2. 近期下载:基于TMDB的元数据识别,展示最近下载的资源情况
3. 自动删种:针对qbittorrent和transmission,配置在满足条件后自动删除下载任务的功能
媒体整理
1. 文件管理:以文件浏览形式,对每个文件操作,包括元数据识别测试、下载字幕、重命名、硬链接查询等等
2. 手动识别:目录同步识别失败时,会在这里停留
3. 历史记录:目录同步识别自动执行后,会在此处留下历史记录,
如果有误可以在这里进行修改、重新识别、删除等等操作
4. TMDB缓存:整个nas-tools在触发TMDB元数据查询时会缓存相应ID和标题在本地,
订阅和目录同步识别都是基于这里的数据进行匹配,如果有误需要在这里手动修改或者删除
服务
1. rss订阅:rss订阅更新
2. 订阅搜索:订阅管理内电影和电视剧订阅的更新
3. 下载文件转移:转移下载好的文件
4. 站点签到:一般是PT站的自动签到,我个人没用过
5. 目录同步:触发源目录扫描同步到目的目录(媒体整理)
6. 清理转移缓存:清除所有目录同步得历史记录,也就是后续运行目录同步会从零开始(慎用!)
7. 清理rss缓存:清除所有的rss订阅下载的历史记录,也就是后续更新rss订阅会从零开始下载(慎用)
8. 名称识别测试:根据填写的文件名进行TMDB元数据识别,识别成功与否会直接影响
资源下载后的自动转移文件的准确性
9. 过滤规则测试:根据填写的种子名、大小、过滤规则,进行rss订阅报文识别测试,
识别成功与否会直接订阅下载的准确性
10. 网络连通性测试:nas-tools常用的目标域名连接测试,TMDB相关的域名务必接通,
因为整个自动追番流程都离不开TMDB元数据的识别匹配
11. 备份&恢复:顾名思义
设置
1. 基础设置:里面包括了一些nas-tools自身系统设置
媒体元数据设置(TMDB api key之类的),服务,安全,webhook等等
2. 用户管理:nas-tools的用户管理,可以给每个用户进行权限管控
但仅限于上述的1级功能管控,1级下的2级模块不能单独管控
3. 媒体库:nas-tools自身的媒体库路径设置
基于TMDB的片源元数据主要分为电影、电视剧、动漫、未识别
4. 目录同步:配置目录同步的源目录和目的目录,包括配置同步方式等等
自动追番流程比较核心的设置之一,上面的注意事项已经说过了
5. 消息通知:nas-tools可以配置消息推送模块来推送信息给对应的软件
比如微信公众号、Server酱、Telegram等等
6. 过滤规则:rss订阅的过滤规则(白名单模式)
在订阅时可以选择对应的一组规则进行匹配,可以在同一组里配置N个规则,支持正则表达式
7. 自定义识别词:基于TMDB的元数据,对无法识别的文件名进行预处理
比如某些文件名识别不到作品标题或ID,可以在这里配置替换
自动追番比较核心的设置之一
8. 索引器:信息搜索、rss订阅的核心,nas-tools内置了不少常用资源网站的索引器
基本上已经够用,支持更换为jackett和prowlarr
9. 下载器:触发下载需要设置这里,默认是qbittorrent
10. 媒体服务器:对接媒体库软件需要设置这里,默认是Emby
目前版本能更换为Jellyfin和Plex
11. 字幕:对接字幕下载需要设置这里,默认是OpenSubtitles
目前版本能更换为ChineseSubFinder
12. 豆瓣:对接豆瓣的账户订阅,我个人用不上
(半)自动追番
首先以我个人的使用经验和理解,描述一下nas-tools实现半自动追番的工作流程。这里整个流程都需要了解并使用正则表达式
订阅
从TMDB元数据查询搜索出发,添加电视剧订阅并配置一系列选项,让nas-tools能从订阅中准确匹配识别想要的资源进行下载,由于自带的电视剧订阅功能尚未完善和资源发布字幕组的命名与TMDB元数据不一致,很多时候需要手动维护自定义订阅
订阅前的准备
首先我们需要清楚自己追番的习惯,以我自己举例,我对番剧资源的需求偏向有:
- 分辨率/画质要在1080P以上
- 单一番剧有不同搬运组、压制组、字幕组同时发布资源,优先选择中日双语字幕资源,其次是中文内优先简中
- 同一番剧+同一发布组的番剧资源来源不一样,通常都是搬运组才会出现的情况,比如NC-Raws搬运组会有巴哈Baha、哔哩哔哩东南亚B-Global、CR、Sentai等片源。优先选择无删减和谐的来源,比如Baha
在了解这些需求倾向后,甚至是认准了某一部番剧只下载某一个发布组的特定条件资源后,就可以开始配置:设置-过滤规则
这里以命中 [NC-Raws] 魔王学院的不适任者~史上最强的魔王始祖,转生就读子孙们的学校~第二季 / Maou Gakuin no Futekigousha S2 - 01 (Baha 1920x1080 HEVC AAC MP4)
这个特定资源订阅为例,后续截图都只展示部分进行说明
过滤规则默认走 白名单
模式,也就是如果不在规则内的资源一律忽略,比如上述没有Lolihouse的规则,那么同一番剧内即使订阅获取的资源中有Lolihouse的信息,也会被nas-tools认为不匹配而忽略掉
在订阅时选择“过滤来源”规则,只有命中“Nc-Raws“+”Baha”或者“Nc-Raws“+”B-Global”时才会匹配,直接忽略“Nc-Raws“+”CR”关键词的种子,所以大概订阅情况会是这样:
但是因为我这里没有对编码格式限定,所以触发下载时会造成HEVC和AVC冲突,优先下载先命中规则的资源,也就是AVC。当然可以再针对编码格式设置过滤规则回避这个问题。
电视剧订阅
一般情况下使用这种方式订阅,在搜索模块找到番剧后点击订阅,会自动添加到电视剧订阅里。后续通常需要编辑订阅才能实现准确匹配,以下说明默认认为资源信息能完全匹配TMDB元数据
在这个界面内,标题和年份因为是搜索添加订阅,所以目前版本是锁定不可编辑的,也就是说如果种子名称中匹配不到“魔王学院的不适任者”,那么就获取不到想要的种子信息传递给下载器进行下载
我个人在乎的只有分辨率、发布的制作组或字幕组、同一字幕组保证同一片源,所以图中只限定了1080P和NC-Raws和“过滤来源”,这里的“过滤来源”是设置里配置好的一组规则(上面的准备步骤)
一般配置到这里,就已经完成订阅->下载的步骤,可以考虑下一步了
但是nas-tools自带的电视剧订阅目前还未完善,或者说规则过滤还不够灵活,所以最终会不可避免地有一些番剧不能使用这个模块订阅下载
自定义订阅
这个模块可以对rss订阅进行更为灵活的配置
下面以命中 【喵萌奶茶屋】★01月新番★[不当哥哥了! / Oniichan wa Oshimai! / Onimai][02][1080p][简日双语][招募翻译]
为例
因为MiKan提供了单一番剧的不同发布组的独立订阅地址(比如 别当欧尼酱
+喵萌
),再加上这里可以自定义rss订阅地址,所以对于发布组和番剧的限定可以直接忽略掉,也就是过滤规则可以选择 不过滤
动作一般选择 下载
,订阅
是根据设置去定时触发电影订阅或者电视剧订阅(可以理解成定时自动订阅你想订阅的片子),搜索是
根据设置去定时搜索资源
新增订阅任务后,可以点击右侧的眼睛预览订阅资源的信息,哪怕上面限定了发布组和番剧,但仍然无法准确命中我想要的资源,所以还得继续配置
核心选项:包含
和 排除
,这里支持正则表达式
我想在上面的信息中筛到 1080P
和 简日双语
,所以我们可以这样写包含:1080p.*简日
,这样就不会在更新订阅时命中720P的资源
总结
其实在qbittorrent那也有rss订阅功能,而且那里能很直观地配置多关键词筛选+下载目的自定义路径等等
所以如果不是特别追求nas-tools的订阅功能,用下载软件自身的rss订阅也能很好地过滤下载想要的资源,后续让nas-tools自动监控同步目录识别整理就行
下载
配置下载器
在上述的订阅设置正常运作的情况下,这一块需要注意的是下载软件和后续目录同步的配合,这里我以qbittorrent为例。
在设置-下载器设置里,可以选择 自动管理模式
由qbittorrent接管所有下载行为操控或者取消勾选让nas-tools对接下载软件接管行为,我个人选择前者,因为我的qbit还有别的用途,不能让nas-tools直接接管操控
点击右上角 下载设置
-新增下载设置
,这里可以设置一组通用的规则,我个人是这样设置的
设置完毕后就可以在第一步订阅的时候手动选择 下载设置
来指定每一部订阅番剧的下载方式
自动删种
使用一系列条件限定只删除通过nas-tools触发下载的 anime
分类和 NASTOOL
标签的种子,这样就不会自动删除其他的种子任务
qbittorrent部分
在qbittorrent设置 anime
分类并指定保存路径,我个人是这样设置,需要注意的是要跟后续的 目录同步
配合
总结
最终实现的效果是
- 订阅触发下载,在qbittorrent形成分类为
anime
和标签为NASTOOL
的任务,下载完毕后自动做种,做种分享率3.0以上或时长7天以上自动暂停任务 - 每60分钟检查删除qbittorrent中分类为
anime
和标签为NASTOOL
的任务是否满足分享率3.0以上或时长7天以上的任务
上面描述的保存路径可能因为docker的挂载显得比较乱,但不要紧,只需要确保最终anime分类的下载文件保存在目录同步的源目录路径 /medias/downloads/anime
就行
目录同步
工作流程说明
首先说一下目录同步的,下载器完成下载在源目录路径形成完整文件后,将每一个文件名称拆分词组,对比TMDB元数据进行识别,信息识别成功后按照设置转移到目的目录,识别失败的会显示在 手动识别
界面
设置-目录同步
这里的源目录和目的目录设置比较简单
- 复制:会占用两份文件的空间,直到删种任务运行释放下载保存路径的那一份空间
- 硬链接:个人推荐这个方式,但有一定要求,在最上面的
部署容器前的注意事项
提到的docker跨盘问题 - 软链接:只占用一份空间,但是不能删除下载文件,做种完毕后也不能移动文件
- 转移:将文件直接移动到目的目录,在需要做种的情况下,无法选择这个方式
自动转移重命名
在 设置-基础设置-媒体
部分需要设置一些选项才能实现理想中的效果
二级分类策略
改用自定义二级分类策略# 配置动漫的分类策略, 配置为空或者不配置该项则不启用动漫分类 anime: # 如果你的anime_path动漫目录已经直接设置到了动漫子目录,则这个分类可以取消 #动漫: 注释掉这一行 # 匹配 genre_ids 内容类型,16是动漫 #genre_ids: '16' 注释掉这一行
这样在转移时就不会再次分类
/medias/连载动画/动漫/xxxx
,而是以/medias/连载动画
作为顶级目录电视剧重命名格式
我个人是设置成这样:[{year}]{title}/Season {season}/[{releaseGroup}][{title}][{season_episode}]
最终转移文件路径效果是:
/medias/连载动画/[作品年份]作品名称/Season xx/[制作组][作品名称][SxxExx]
实际举例
以比较适合拿来演示的文件名 [Comicat][KyokouSuiri Season 2][01][1080P][GB&JP][MP4].mp4
为例
如下图所示,文件名并未正确识别TMDB标题,另外TMDB的元数据信息并不是 第1季 S01
第13集 E13
,而是 S01E01
。
设置-自定义识别词,新增 93653
的规则(也就是虚构推理的TMDB ID),使用 替换+集偏移
配合正则表达式进行 文件名称
->识别名称
的处理
最终效果,能正常识别到作品名称、季度、集数
总结
这个部分比较关键的地方是文件名称与TMDB元数据的识别匹配,在无法正常匹配数据的时候需要通过 自定义识别词
去替换更正识别名称,以便后续目录同步转移文件并重命名
媒体库Emby
这一部分在nas-tools设置好目录同步,自动转移重命名之后,实际上就没有不需要设置太多东西,因为nas-tools已经根据TMDB尽可能地匹配识别,Emby自身就能很好地运作
唯一要做的就是媒体库添加文件夹 /medias/连载动画
然后未来的一个季度就等着去emby那追番了!
后记
nas-tools经历N个版本迭代,如今已经进化到可以勉强实现一站式订阅、下载、整理的软件,再完善一下甚至是可以付费订阅使用的商业级软件
目前对我来说仍然有一些不足之处,其中最致命的缺陷就是自身的 电视剧订阅
功能不能自定义搜索词,也就是做不到 自定义订阅
那边一样的准确过滤匹配
在我原本的追番流程里,qbittorrent可以担任除了文件自动转移重命名之外的所有步骤,针对rss报文进行精确的多关键词匹配过滤,直接下载指定的资源到指定的存储路径(emby的媒体库路径),这种方式唯一的缺点在于emby的元数据刮削识别准确率很低
但是上面的问题,本质上都不是nas-tools或emby的锅,而是 TMDB的元数据
和 资源发布组对资源以及文件命名
双方不能达成一致导致的,而这个问题很难解决,除非资源发布方完全根据元数据库的信息去命名资源和文件
总之,这篇文章到此算是结束了,如果其中有错误的地方,欢迎指正。后面如果有新的使用体验分享或者修正,都会在原文内更新
版权属于:Zakikun
本文链接:https://blog.zakikun.com/archives/49.html
本文采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
5 条评论
感谢大佬的自定义识别词教学٩(ˊᗜˋ*)و
nastool对bt还是不友好,得自定义。追bt我还是用自己的脚本。
nastool的自定义订阅能搞定一部分需求,但还是不够灵活,比如资源识别匹配触发下载,依然要靠用户自己维护规则
拜读。对于命名格式个人是把{releaseGroup}放到了最后面“ - {releaseGroup}”,这样就可以在emby里播放集数的时候直接选择不同版本
我个人对日本动画番剧很少下多个发布组的资源,但电影确实需要这个技巧,感谢补充