6.自动整理 - guyue2005/CMSHelp GitHub Wiki

自动整理

点击展开0.3.3.13版本内容
  • 自动整理基于 MoviePoliot 的识别服务,因此需要配置 MP 的域名及令牌使 CMS能够完成操作,自动整理还可以配合CMS订阅与转存功能使用。

自动整理必须先执行完成一次全量同步,必须创建好二级分类策略

  • 基础配置

自动整理菜单 - 基础配置 中设置: 配置说明

  • MoviePilot 域名:填写本地 MP2.0 Web 后台的 IP 地址和端口。
  • MoviePilot 令牌:填写 MP2.0 API 令牌。可以在 MP2.0 后台的 设定 - 系统界面 中获取。
  • 待整理文件夹 CID:填写待整理的文件夹CID,即你需要整理的文件夹。此文件夹一定要非CMS媒体库中的文件夹,可以是其他文件夹。
  • 已存在文件夹 CID:填写整理后的存储文件夹CID。不建议设置为CMS媒体库内的文件夹。是否判定为已存在文件夹,重命名规则,通过视频文件的SHA1、数据库等信息比对。请注意这一点。
  • 冗余文件夹 CID:填写 CMS 整理后废弃的文件存储文件夹 CID。此文件夹非 CMS 媒体库中的文件夹。冗余文件夹用于存储除了常见的视频文件(如 MP4、MKV 等)之外的其他各种文件,包括但不限于:
    • 媒体信息文件
    • 字幕文件
    • 媒体封面图和其他数据文件

image

Tip

新版0.3.4 开始自动整理已去除MP,自动整理还可以配合CMS订阅与转存功能使用。

Warning

自动整理必须先执行完成一次全量同步,必须创建好二级分类策略

基础配置

自动整理菜单 - 基础配置 中设置: 配置说明

  • 待整理文件夹 CID:填写待整理的文件夹CID,即你需要整理的文件夹。此文件夹一定要非CMS媒体库中的文件夹,可以是其他文件夹。
  • 已存在文件夹 CID:填写整理后的存储文件夹CID。不建议设置为CMS媒体库内的文件夹。是否判定为已存在文件夹,重命名规则,通过视频文件的SHA1、数据库等信息比对。请注意这一点。
  • 冗余文件夹 CID:填写 CMS 整理后废弃的文件存储文件夹 CID。此文件夹非 CMS 媒体库中的文件夹。冗余文件夹用于存储除了常见的视频文件(如 MP4、MKV 等)之外的其他各种文件,包括但不限于:
    • 媒体信息文件
    • 字幕文件
    • 媒体封面图和其他数据文件

image

Warning

请注意,全量同步的媒体图片、数据文件配置不适用于自动整理。目前只整理视频文件和字幕(字幕必须按标准的文件名和视频文件名一致),CMS 整理工作完成后,根据实际情况选择是否删除这些冗余文件或自行整理。

识别规则

Tip

用于增强媒体识别

  • 字符串替换-识别前对视频文件名称进行替换;一行一个替换规则,格式为:原文本=>替换后文本 (支持正则);如:Iron Man => tmdb=1726
  • 发布组扩展- 用于扩展未收录的发布组;一行一个,如:WiKi(已集成常见的PT发布组)

image

GPT识别

用于提高媒体名称的识别准确率,只要是支持openai协议标准的模型都可以使用;这里推荐 [硅基流动]的模型

image

二级分类策略

Tip

提供一个本地目录树生成工具(如果网盘没有创建好目录,可用此工具) 说明相关 Wiki

自动整理菜单 - 二级分类策略 文件夹路径与二级分类策略说明

  • 文件夹路径:请根据实际需求,将下列图示CID替换为115媒体库中对应文件夹的路径。可以根据实际CID自行编辑 二级分类策略 来进行调整。
  • 二级分类策略注意事项:
    • 二级分类策略的代码要求非常严格。
    • 多余的空格或格式错误 会导致 CMS 报错,请确保代码书写规范。
点击展开配置文件内容
# 配置电影的分类策略
movie:
  # 分类名仅为标识 不起任何作用
  动画电影:
    ###### cid为115文件夹的cid 必须有 ######
    cid: 1000000000000000001
    # 匹配 genre_ids 内容类型,16是动漫
    genre_ids: '16'
  华语电影:
    cid: 1000000000000000002
    # 匹配语种
    original_language: 'zh,cn,bo,za'
  # 未匹配以上条件时,返回最后一个
  外语电影:
    cid: 1000000000000000003

# 配置电视剧的分类策略
tv:
  国漫:
    cid: 1000000000000000004
    genre_ids: '16'
    # 匹配 origin_country 国家,CN是中国大陆,TW是中国台湾,HK是中国香港
    origin_country: 'CN,TW,HK'
  日番:
    cid: 1000000000000000005
    genre_ids: '16'
    # 匹配 origin_country 国家,JP是日本
    origin_country: 'JP'
  纪录片:
    cid: 1000000000000000006
    # 匹配 genre_ids 内容类型,99是纪录片
    genre_ids: '99'
  儿童:
    cid: 1000000000000000007
    # 匹配 genre_ids 内容类型,10762是儿童
    genre_ids: '10762'
  综艺:
    cid: 1000000000000000008
    # 匹配 genre_ids 内容类型,10764 10767都是综艺
    genre_ids: '10764,10767'
  国产剧:
    cid: 1000000000000000009
    # 匹配 origin_country 国家,CN是中国大陆,TW是中国台湾,HK是中国香港
    origin_country: 'CN,TW,HK'
  欧美剧:
    cid: 1000000000000000010
    # 匹配 origin_country 国家,主要欧美国家列表
    origin_country: 'US,FR,GB,DE,ES,IT,NL,PT,RU,UK'
  日韩剧:
    cid: 1000000000000000011
    # 匹配 origin_country 国家,主要亚洲国家列表
    origin_country: 'JP,KP,KR,TH,IN,SG'
  # 未匹配以上分类,则命名为未分类
  未分类:
    cid: 1000000000000000012

Tip

使用技巧: 比如指定格式(需要放在最前面,因为权限高)

注意一点: 如果存在其他格式的电影,大概率会自动分配现有的目录中

  蓝光原盘:
    cid: 1000000000000000000
    # 匹配文件后缀
    ext: 'iso'

洗版策略

洗版只有在整理过程中发现重复资源才会执行,必须先配置好二级分类策略

你可以设置任意多个洗版策略

  • mode 是洗版模式,代表你想用哪种策略进行洗版
  • media_type 设置这个策略用于哪个媒体类型,去掉这个字段即匹配所有
  • category 设置这个策略用于哪个分类(对应于二级分类策略里的分类名),去掉这个字段即匹配所有
  • priority_level 匹配优先级(就是符合这些规则的视频就会执行这个洗版策略)

优先级匹配支持所有重命名规则里的变量名

电影洗版策略:
  mode: replace
  media_type: movie
  priority_level:
    # 匹配 2160p 分辨率
    - resource_pix: "2160p"
    # 匹配 2160p、1080p 分辨率
    - resource_pix: "2160p,1080p"
    # 排除 2160p 分辨率
    - resource_pix: "!2160p"

一个通用的新版策略如下:排除 DV;优先 WiKi 小组;优先 2160P

点击展开洗版策略内容
# 第一级为别名,随便写
电影洗版策略:
  # 洗版模式:
  #   coexist: 共存(就是多版本共存)
  #   skip: 跳过(就是只要有一个,就不再保存了)
  #   replace:(就是根据优先级进行洗版)
  #   max_size:(就是在优先级相同时保留最大的)
  #   min_size:(就是在优先级相同时保留最小的)
  mode: replace
  # 匹配媒体类型,movie/tv,去掉这个字段即匹配所有
  media_type: movie
  # 匹配二级分类策略的分类名,去掉这个字段即匹配所有
  #category: 华语电影,动画电影
  # 匹配规则优先级,上面的优先级最高
  priority_level:
    - resource_team: "WiKi"
      resource_effect: "!DV.HDR,!DV"
    - resource_pix: "2160p"
      resource_type: "BluRay"
      resource_effect: "!DV.HDR,!DV"
    - resource_pix: "1080p"
      resource_type: "BluRay"
    - resource_pix: "2160p"
      resource_type: "WEB-DL"
      resource_effect: "!DV.HDR,!DV"
    - resource_pix: "1080p"
      resource_type: "WEB-DL"

剧集洗版策略:
  mode: replace
  media_type: tv
  priority_level:
    - resource_pix: "2160p"
      resource_effect: "!DV.HDR,!DV"
    - resource_pix: "1080p"

电影兜底策略:
  media_type: movie
  mode: coexist

剧集兜底策略:
  media_type: tv
  mode: skip

重命名规则

自动整理菜单 - 重命名规则 中设置:

  • 配置适合自己的电影、剧集重命名规则,配置请阅读变量说明和语法说明,也可以使用CMS默认或教程示例规则。

image

Tip

教程示例: 电影文件夹命名规则:

{title} ({year}) [tmdbid={tmdb_id}]

电影文件夹生成示例:毒液:最后一舞 (2016) [tmdbid=912649]

电影文件命名规则:

{title} ({year}) <{resource_pix}> <{audio_encode}>

电影文件生成示例:毒液:最后一舞 (2016) 2016p DDP 5.1 Atmos.mkv

剧集文件夹命名规则:

{title} ({year}) [tmdbid={tmdb_id}]

剧集文件夹生成示例:清明上河图密码 (2020) [tmdbid=252904] 剧集文件命名规则:

{title} - {season_episode}< - {resource_pix}>

剧集文件生成示例:清明上河图密码 - S01E02 - 2160p.mp4

变量说明

点击展开变量内容
变量名 说明 示例值
{original_name} 原文件名 钢铁侠.2008.2160p.UHD.BluRay.x265.10bit.HDR.TrueHD.7.1-TnT.mkv
{title} TMDB 中的标题 钢铁侠
{first_letter} 大写的拼音首字母 G
{year} TMDB 中的年份 2008
{tmdb_id} TMDB ID 1726
{resource_pix} 分辨率 2160p
{resource_version} 资源版本 IMAX、HQ、3D、CC、DC
{resource_source} 资源来源 USA.UHD、NF、DSNP
{resource_type} 资源质量 BluRay
{resource_effect} 特效 DV.HDR
{video_encode} 视频编码 X265.10bit
{audio_encode} 音频编码 TrueHD.7.1
{resource_team} 发布组 TnT
{fps} 帧率 60FPS
{season_episode} 季集格式 S01E01
{season_num} 季号 1
{episode_num} 集号 1
{disc_num} 盘号 1
{season_name} 季名 东海篇
{season_year} 季年份(可能为空,不建议使用) 1999
{episode_name} 集名 我是路飞!将要成为海贼王的男人!

语法说明

点击展开语法内容
语法 说明
{变量名} 取这个变量的值
<...> 用尖括号包围的字符串称为块,块里 {变量名} 表示当 {变量名} 不为空时,取块里的内容
简单来说重命名规则就是写多个块,然后拼在一起
<{{name}}...> 给块取个名字,类似于临时变量,之后可以用 {name} 反复引用该块的值
<?{{name}}...> 有名字的块可以只取名不输出,便于后续引用
{} 里支持 Python 字符串函数及语法 如下
{resource_effect.replace('.', ' ')} 替换 resource_effect 中的.为空格
{resource_effect.lower()} 将 resource_effect 转换为小写
{resource_effect.upper()} 将 resource_effect 转换为大写
{'2160p' if resource_pix=='4k' else resource_pix} 如果 resource_pix 为 4k,则返回 2160p,否则返回 resource_pix
<{title}> 和 {title} 的区别 <{title}>会先判断 title 是否为空,后者是直接取 title 的值;也就是说如果你用的变量可能为空,则必须用 < > 把变量包起来
如果想用 { },由于和语法冲突,可以用 代替,最终会替换为 { }
自定义命名规则就是自定义多个块,也是多个 <...>,最终这些块的按顺序拼在一块
文件夹命名规则示例 {first_letter}-{title}-{year}-[tmdb={tmdb_id}]
电影命名规则示例 {title}.{year}<.{resource_pix}><.{fps}><.{resource_version}><.{resource_source}><.{resource_type}><.{resource_effect}><.{video_encode}><.{audio_encode}><-{resource_team}>

Tip

开始自动整理,必须配置好所有相关选项

⚠️ **GitHub.com Fallback** ⚠️