我当时改这套格式,是因为同一部电影的两个分辨率没有在 Emby 里归到一起。问题不只是后缀写成 1080p 还是 2160p,而是每个文件名的开头要和影片文件夹完全一致。
Emby 多版本识别的关键
Emby 官方命名说明 要求同一影片的多个版本放在同一个文件夹,文件名以完整文件夹名开头,后面接 - 和版本描述。
花样年华 (2000) [tmdbid=843]/
├── 花样年华 (2000) [tmdbid=843] - 1080p.mkv
└── 花样年华 (2000) [tmdbid=843] - UHD SDR(2160p) - beAst.mkv
这里的年份、空格和 ID 也属于前缀,不能少一个字符。不同剪辑版的处理还有其他限制,不能把所有“版本”都理解成只换分辨率。

说明图:Emby 多版本:两份文件,共用完整目录前缀
电影模板
MoviePilot 使用 Jinja2 模板。当前自定义重命名说明 仍列出了 tmdbid,但使用其他识别源时它可能为空。因此 ID 放在条件里,文件夹与文件名使用同一段前缀。
{{title}}{% if year %} ({{year}}){% endif %}{% if tmdbid %} [tmdbid={{tmdbid}}]{% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if tmdbid %} [tmdbid={{tmdbid}}]{% endif %}{% if edition and videoFormat %} - {{edition}}({{videoFormat}}){% elif edition %} - {{edition}}{% elif videoFormat %} - {{videoFormat}}{% else %} - Default{% endif %}{% if part %} - {{part}}{% endif %}{% if releaseGroup %} - {{releaseGroup}}{% endif %}{{fileExt}}
旧模板把 part 放在 ID 之前,分段影片的文件名就可能无法保持完整的文件夹前缀。现在把它移到前缀之后,再拼接版本、分辨率和制作组。
Default 是元数据缺失时的备用描述,不会保证两个实际不同的资源生成不同文件名。批量整理前还要检查重名与覆盖策略,拿几份文件做预览测试。
电视剧模板
电视剧保留剧名目录、季目录,以及包含季集编号和技术参数的文件名。缺失的英文标题、年份等字段不再留下多余分隔符:
{{title}}{% if year %} ({{year}}){% endif %}{% if tmdbid %} [tmdbid={{tmdbid}}]{% endif %}/Season {{season}}/{{title}}{% if en_title %}.{{en_title}}{% endif %}{% if year %}.{{year}}{% endif %}.{{season_episode}}{% if part %}.{{part}}{% endif %}{% if videoFormat %}.{{videoFormat}}{% endif %}{% if edition %}.{{edition}}{% endif %}{% if videoCodec %}.{{videoCodec}}{% endif %}{% if audioCodec %}.{{audioCodec}}{% endif %}{% if customization %}.{{customization}}{% endif %}{% if releaseGroup %}.{{releaseGroup}}{% endif %}{{fileExt}}
例如:黄石.Yellowstone.2018.S01E01.2160p.WEB-DL.H265.DDP 5.1.mkv。电影多版本的文件夹前缀要求,不能直接套成所有电视剧集的命名规则。
保存之前检查一遍
在当前版本的重命名设置里先预览普通影片、空年份、非 TMDB 来源和分段资源,再小范围测试。MoviePilot V3 的元数据模型有调整,升级与改模板是两件事;不要为了套用本文模板直接对现有媒体库执行全量迁移。

Emby 界面:多版本影片的选择
这张 Emby 页面展示了多版本影片的选择方式,不是 MoviePilot 设置页。
参考:MoviePilot 模板变量、配置说明、版本升级说明、Emby 电影命名。模板做了本地渲染检查,未对你的媒体库执行重命名。