由于bt、pt站的部分剧集名称和tmdb数据、流媒体平台数据存在差异,导致了 MoviePilots 无法订阅、搜索与识别剧集,需要配置自定义识别词进行“季度替换+集数偏移”。博主将简单讲一讲MoviePilot 的自定义识别词配置方法。

一、官方支持的配置格式

屏蔽词
被替换词 => 替换词
前定位词 <> 后定位词 >> 集偏移量(EP)
被替换词 => 替换词 && 前定位词 <> 后定位词 >> 集偏移量(EP)
其中替换词支持格式:{[tmdbid/doubanid=xxx;type=movie/tv;s=xxx;e=xxx]} 直接指定TMDBID/豆瓣ID识别,其中s、e为季数和集数(可选)

注意:

  • 自定义识别词支持正则替换规则
  • 自定义识别词有先后顺序,前面的优先级更高;

二、常用正则替换字符

字 符 描 述
* 匹配前面的子表达式零次或多次。例如,zo 能匹配 "z" 以及 "zoo"。 等价于 {0,}
+ 匹配前面的子表达式一次或多次。例如,zo+ 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,do(es)? 可以匹配 "do" 、 "does"、 "doxy" 中的 "do" 和 "does"。? 等价于 {0,1}
. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用 。要匹配这些字符,请使用 ( 和 )。
| 指明两项之间的一个选择。要匹配 |,请使用 \ |。
[] 表示选择之一,比如[123],可选择1、2或3,等价于[1-3]

更多正则规则,参考此处

三、举例分析

正向后行断言

(?<=Swallowed.Star.S04.*?)2023 => 2020

字符串 描述
?<= 表示这是一个正向后行断言,用于匹配"2023"前面跟着的内容"Swallowed.Star.S04.*?"
Swallowed.Star.S04 匹配以"Swallowed.Star.S04"开头的字符串。注意,此处的.匹配除换行符 \n 之外的任何单字符,即"Swallowed Star S04"也匹配。
.*? 匹配任意数量的任意字符,此处“?”表示非贪婪模式。这意味着它会尽可能少地匹配字符,直到满足后面的条件。
2023 匹配字符串中的"2023"部分,表示需要在前面的内容后面跟着"2023"。
=> 2020 将匹配到Swallowed.Star.S04时的2023替换为2020

综合起来,这个正则表达式会匹配以"Swallowed.Star.S04"或"Swallowed Star S04"开头,并在后面的任意位置跟着"2023"的字符串;该自定义识别词表示将上面匹配到的"2023"修改为2020,实现年份的替换。

正向先行断言

aa.S01(?=.*E(1[3-9]|[2-9][0-9]).*) => aa S03

字符串 描述
?=: 表示这是一个正向先行断言,用于匹配aa.S01后面跟着的内容"E(1[3-9]|[2-9][0-9])"。
.* 匹配任意数量的任意字符
E 字符E
(1[3-9]|[2-9][0-9]) 13-99的所有字符
=> aa S03 将匹配到“E13-E99”时的aa.S01替换为aa.S03

综合起来,这个正则表达式会匹配以"aa.S01"开头,后面跟着一个以"E"开头的数字(范围在13到99之间)的字符串;该自定义识别词表示将“aa”剧集的第一季的13集-99集,识别为第三季的剧集。

正则替换搭配官方配置

IMMORTALITY.S01(?=.*E(2[5-9]|[3-9][0-9]).*XX-Web) => IMMORTALITY S03 && S03 <> 2022 >> EP-24
将含有“XX-web”的诛仙【IMMORTALITY】剧集,S01E25-S01E99识别为S01E01-S01E75。MoviePilot识别时可达到“季度替换+集数偏移”的效果。
&& 表示并且,前面条件满足才能进行后面操作;<> 前后为定位词;>> 后跟集数偏移量,EP+数字 或者 EP-数字。

个人常用自定义识别词

# 将4k、4K修改为2160p
(?<=\[|\s)4[k|K](?=\]|\s) => 2160p
# 年份与分辨率交换顺序,便于集数偏移
2020[\.|\s]2160p => 2160p 2020
2022[\.|\s]2160p => 2160p 2022
2023[\.|\s]2160p => 2160p 2023
2024[\.|\s]2160p => 2160p 2024
# 百炼成神 (2022)
Apotheosis.S02 => Apotheosis S01 && Apotheosis.S01 <> 2160p >> EP+52
# 永生
IMMORTALITY.S01(?=.*E(2[5-9]|[3-9][0-9]).*) => IMMORTALITY S03 && S03 <> 2160p >> EP-24
# 师兄啊师兄 (2023)
My.Senior.Brother.is.Too.Steady.S02 => My Senior Brother is Too Steady S01 && S01 <> 2160p >> EP+13
# 吞噬星空 (2020)
Swallowed.Star.S04 => Swallowed Star S01 && S01 <> 2160p >> EP+85

可以尝试分析一下上面的自定义识别词,这些识别词基本上能够满足“季度替换+集数偏移”的要求,可以随心所欲识别自己心爱的剧集为特定季度的特定集。文章如有错误或者有不明白的地方,可以在评论区留言交流沟通。


“一花一世界,一叶一天堂。君掌盛无边,刹那成永恒。”