3步搞定NAS媒体库混乱MoviePilot批量重命名终极指南【免费下载链接】MoviePilotNAS媒体库自动化管理工具项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot你是否曾经面对NAS中杂乱无章的媒体文件命名而头疼不已Movie.Name.2023.1080p.BluRay.x264-XXX.mkv这样的文件名不仅难以阅读更会导致Plex、Emby等媒体服务器无法正确刮削元数据。MoviePilot作为一款强大的NAS媒体库自动化管理工具其批量重命名功能通过智能识别技术可将混乱的文件名自动转换为规范格式让你的媒体库焕然一新。 为什么需要批量重命名在管理家庭媒体库时文件的规范命名至关重要。混乱的命名不仅影响美观更会导致以下问题媒体服务器无法识别Plex、Emby、Jellyfin等服务器依赖规范的文件名来匹配元数据搜索困难难以通过标题快速找到想看的影片分类混乱电影、电视剧、动漫混在一起缺乏有效组织手动整理耗时大量文件需要人工逐个重命名效率低下MoviePilot的批量重命名功能正是为了解决这些问题而生。它基于智能元数据识别引擎能够自动解析文件名中的关键信息并按照预设规则进行规范化重命名。 MoviePilot重命名的核心技术智能元数据识别引擎MoviePilot的重命名核心在于MetaInfo引擎该引擎位于app/core/metainfo.py中。它通过多层解析机制提取媒体文件的关键信息# 核心元数据识别函数 def MetaInfo(title: str, subtitle: Optional[str] None, custom_words: List[str] None) - MetaBase: 根据标题和副标题识别元数据 # 预处理标题移除无用信息 title, apply_words WordsMatcher().prepare(title, custom_wordscustom_words) # 判断是否为视频文件 if title and Path(title).suffix.lower() in settings.RMT_MEDIAEXT: isfile True title Path(title).stem # 去掉文件后缀 else: isfile False # 智能判断媒体类型普通视频还是动漫 meta MetaAnime(title, subtitle, isfile) if is_anime(title) else MetaVideo(title, subtitle, isfile) # 记录原始信息 meta.title org_title meta.apply_words apply_words or [] return meta媒体类型智能判断MoviePilot能够智能区分电影、电视剧和动漫这是通过is_anime()函数实现的def is_anime(name: str) - bool: 判断是否为动漫 # 动漫特有的命名模式匹配 if re.search(r【[0-9XVPI-]】\s*【, name, re.IGNORECASE): return True if re.search(r\s-\s[\dv]{1,4}\s, name, re.IGNORECASE): return True # 更多匹配规则... return False 快速上手3步完成批量重命名第1步配置命名规则MoviePilot支持灵活的命名规则配置你可以使用以下变量来自定义格式变量说明示例输出{{title}}媒体标题流浪地球{{year}}发行年份2023{{season}}季数S01{{episode}}集数E03{{resolution}}分辨率1080p{{video_codec}}视频编码H.265{{audio_codec}}音频编码DTS-HD{{release_group}}发布组CHD配置文件位于app/helper/directory.py中你可以根据需求调整目录结构和命名规则def get_dir(self, media: MediaInfo, include_unsorted: Optional[bool] False, storage: Optional[str] None, src_path: Path None, target_storage: Optional[str] None, dest_path: Path None ) - Optional[schemas.TransferDirectoryConf]: 根据媒体信息获取下载目录、媒体库目录配置 media_type media.type.value dirs self.get_dirs() # 智能目录匹配逻辑 matched_dirs: List[schemas.TransferDirectoryConf] [] for d in dirs: # 目录类型为全部的符合条件 if not d.media_type: matched_dirs.append(d) continue # 目录类型和媒体类型匹配 if d.media_type media_type and not d.media_category: matched_dirs.append(d) continue # 更多匹配规则...第2步设置媒体库目录在MoviePilot的Web界面中进入系统设置→目录设置配置你的媒体库目录电影目录设置电影文件的存储位置电视剧目录设置电视剧的存储位置动漫目录如有需要单独设置动漫目录下载目录设置种子下载的临时目录第3步执行批量重命名配置完成后MoviePilot会自动监控下载目录当有新的媒体文件下载完成时自动识别系统自动解析文件名中的元数据智能分类根据内容判断是电影、电视剧还是动漫规范命名按照预设规则生成新文件名移动文件将文件移动到对应的媒体库目录更新服务器可选同步更新Plex/Emby媒体库 高级功能让重命名更智能多目录元数据合并当媒体文件存储在多层目录中时MoviePilot能够智能合并各级目录的元数据def MetaInfoPath(path: Path) - MetaBase: 根据路径识别元数据 # 文件本身的元数据 file_meta MetaInfo(titlepath.name) # 父目录的元数据 dir_meta MetaInfo(titlepath.parent.name) # 合并元数据 file_meta.merge(dir_meta) # 继续合并更上层目录的元数据 root_meta MetaInfo(titlepath.parent.parent.name) file_meta.merge(root_meta) return file_meta自定义识别词配置对于特殊的文件名格式你可以添加自定义识别词来优化解析效果# 自定义识别词示例 custom_words [ Directors Cut, # 导演剪辑版 Extended, # 加长版 IMAX, # IMAX版本 Remastered, # 重制版 Special Edition, # 特别版 Unrated, # 未分级版 ] # 使用自定义词解析 meta MetaInfo(titleMovie.Name.Directors.Cut.2023.mkv, custom_wordscustom_words)智能去重处理当遇到同名文件时MoviePilot会自动处理重名问题def handle_duplicate(filename: str, target_dir: Path) - str: 处理同名文件冲突 base_name Path(filename).stem ext Path(filename).suffix counter 1 new_filename filename # 检查文件是否已存在如果存在则添加序号 while (target_dir / new_filename).exists(): new_filename f{base_name} ({counter}){ext} counter 1 return new_filename 实用技巧与最佳实践技巧1使用强制类型标记如果自动识别不准确可以在文件名中添加类型标记{typemovie}- 强制识别为电影{typetv}- 强制识别为电视剧{typeanime}- 强制识别为动漫技巧2直接指定TMDB/豆瓣ID对于难以识别的文件可以直接在文件名中指定ID[tmdbid12345]- 指定TMDB ID[doubanid1234567]- 指定豆瓣ID技巧3批量处理已有文件对于已经存在的混乱文件可以使用MoviePilot的CLI工具进行批量处理# 扫描并重命名指定目录下的所有文件 moviepilot rename --path /path/to/media --dry-run # 实际执行重命名去掉--dry-run参数 moviepilot rename --path /path/to/media技巧4定期维护命名规则建议每季度检查一次命名规则根据新的发布习惯进行调整观察新下载文件的命名模式添加新的自定义识别词调整目录结构以适应新的分类需求测试重命名效果确保准确性 常见问题解决方案问题1特殊字符导致重命名失败解决方案MoviePilot会自动过滤非法字符def sanitize_filename(filename: str) - str: 清理文件名中的非法字符 illegal_chars [\\, /, :, *, ?, , , , |] for char in illegal_chars: filename filename.replace(char, _) return filename问题2元数据识别错误排查步骤检查日志文件logs/metainfo.log查看识别过程在Web界面中查看文件识别详情添加自定义识别词针对特定发布组或命名习惯使用强制标记在文件名中添加{type...}或[tmdbid...]问题3重命名后媒体服务器不更新解决方案确保媒体服务器插件已正确配置检查服务器API连接状态手动触发库刷新查看服务器日志排查权限问题 重命名效果对比重命名前混乱的命名Movie.Name.2023.1080p.BluRay.x264-XXX.mkv TV.Show.S01E01.720p.WEB-DL.x265.mkv [ABC-123] Anime Title - 01 [1080p].mkv重命名后规范的命名电影/流浪地球 (2023)/流浪地球 (2023) [1080p x264 DTS-HD].mkv 电视剧/权力的游戏/Season 01/权力的游戏 S01E01 [720p x265].mkv 动漫/进击的巨人/Season 01/进击的巨人 S01E01 [1080p].mkv 结语让媒体库管理更轻松MoviePilot的批量重命名功能不仅是一个简单的文件重命名工具更是一个完整的媒体库管理解决方案。通过智能识别、灵活配置和自动化处理它能够将混乱的媒体文件整理得井井有条。无论你是拥有几十部电影的家庭用户还是管理数千部影片的媒体服务器管理员MoviePilot都能显著提升你的工作效率。告别手动整理让智能自动化为你服务立即开始克隆MoviePilot仓库并按照官方文档进行配置体验智能重命名的便利git clone https://gitcode.com/gh_mirrors/mo/MoviePilot通过合理的配置和使用技巧你将拥有一个整洁、规范、易于管理的媒体库让观影体验更加愉悦【免费下载链接】MoviePilotNAS媒体库自动化管理工具项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考