ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AutoBangumi 文件重命名机制全解析:三种重命名方式、收藏整理与剧集偏移实战

AutoBangumi 文件重命名机制全解析:三种重命名方式、收藏整理与剧集偏移实战 后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载AutoBangumiAB作为全自动追番工具其文件重命名模块负责把下载器中的原始种子文件整理成符合 Plex / Jellyfin / Emby 等媒体库规范的命名结构。本文以官方文档 文件重命名 为核心骨架结合 Renamer 实现源码 与 单元测试系统讲解pn、advance、none三种重命名方式的差异与适用场景、收藏合集重命名的工作机制以及 v3.2 引入的剧集偏移Episode Offset配置方法。读完本文你将能根据自身媒体库规范选择正确的重命名策略并掌握处理虚拟季度番剧偏移的手动与自动检测配置。一、重命名前置条件番剧管理器与配置入口重命名功能由番剧管理器Bangumi Manage统一驱动。若需启用重命名必须先保证以下条件成立番剧管理器处于启用状态在 WebUI 的番剧管理设置中开启启用开关对应config.json的bangumi_manage.enable默认true。关闭后重命名与整理相关设置均不会生效参见 番剧管理设置。重命名方式已正确配置bangumi_manage.rename_method默认pn类型为字符串可在 WebUI番剧管理设置中通过重命名方式下拉框修改。从 配置模型源码 可以看到完整的配置节定义{ bangumi_manage: { enable: true, rename_method: pn, eps_complete: false, group_tag: false, remove_bad_torrent: false, track_orphans: true } }重命名循环由后台调度器按固定周期运行Program.rename_time默认 60 秒一轮扫描下载器中所有已完成种子的文件逐一对齐到目标命名。二、三种重命名方式pn/advance/noneAB 目前提供三种重命名方式pn、advance和none。它们在名称来源与目标格式上各有侧重直接决定了最终文件名的形态。pn纯名称Pure Namepn是pure name的缩写使用种子标题发布组标题进行重命名仅提取出番剧标题与集数丢弃发布组、分辨率、编码等冗余信息。官方示例[Lilith-Raws] 86 - Eighty Six - 01 [Baha][WEB-DL][1080p][AVC AAC][CHT][MKV].mkv 86 - Eighty Six S01E01.mkv在 gen_path 实现 中pn分支的命名模板为{title} S{season}E{episode}{suffix}其中title是解析器从文件名中提取的番剧标题。测试用例 test_pn_method 验证了该输出形态EpisodeFile(media_pathold.mkv, titleMy Anime, season1, episode5, suffix.mkv) # gen_path(..., methodpn) My Anime S01E05.mkvadvance高级重命名advance高级重命名使用父文件夹名称进行重命名。因为番剧下载目录本身是按官方标题Official Title建立的所以advance生成的文件名使用官方标题与标准季集格式比pn更贴近媒体库规范。官方示例/downloads/Bangumi/86 - Eighty Six(2023)/Season 1/[Lilith-Raws] 86 - Eighty Six - 01 [Baha][WEB-DL][1080p][AVC AAC][CHT][MKV].mkv 86 - Eighty Six(2023) S01E01.mkv对应源码分支为{bangumi_name} S{season}E{episode}{suffix}bangumi_name即来自父文件夹名称调用方传入。测试 test_advance_method 验证其输出为Bangumi Name S02E12.mkv。none不重命名none不执行任何重命名文件保持原样。源码中该方法直接返回原始路径gen_path 的 none 分支重命名流程也会据此跳过所有文件操作且不会打上已重命名标签。补充早期版本还存在normal方式使用较保守的番剧标题与集数命名但在当前源码中已被标记为deprecatedgen_path 的 normal 分支命中时仅记录警告并原样返回路径不建议在新配置中使用。命名细节补零、半集与幂等性无论pn还是advance季度与集数编号都遵循统一的格式化规则由 _format_episode 与 _adjust_episode 保证两位数补零季度和集数小于 10 时补前导零如S01E09测试 test_zero_padding_single_digit。半集保留小数总集篇等12.5集保留小数而非四舍五入避免覆盖同季的整数集对应 issue #667。不做保留字符清洗从磁盘既有文件名解析出的标题会原样保留如含:的Re:Zero避免升级后对既有做种库触发整库批量重命名测试 test_title_reserved_characters_kept_verbatim 明确验证。三、收藏重命名合集整理与字幕文件当单个种子包含多集文件合集/收藏版Collection时AB 会走收藏重命名流程rename_collection。官方文档明确了收藏重命名的两个前提条件剧集位于收藏的一级目录中可以从文件名解析出剧集编号。满足条件后AB 会遍历种子内所有媒体文件逐个解析集数并应用重命名将剧集与目录放置到Season文件夹中例如Season 1、Season 2将处理完成的收藏种子移动到BangumiCollection分类下重命名流程末尾的 set_category 调用。分类切换在集成测试中得到了验证test_collection_sets_category多文件种子走完整重命名流程后会以set_category(hash, BangumiCollection)结束BangumiCollection也是下载器客户端内置的两大分类之一见 mock_downloader 默认分类。多文件电影的智能区分对于正片 特典/花絮的多文件电影种子rename_collection会选出体积最大者作为主文件无体积信息时取首个主文件获得干净的电影名其余文件在干净名基础上追加原始文件名词干以示区分_gen_movie_extra_path避免多个文件生成相同目标名互相覆盖。对应测试 test_rename_collection_movie_largest_file_gets_clean_name 对该行为有专门覆盖。字幕文件重命名AB 还可以重命名一级目录中的字幕文件字幕与媒体文件遵循同一套Season结构。底层实现将重命名方式映射为subtitle_前缀变体rename_subtitles字幕方法命名模板官方示例subtitle_pn{title} S{ss}E{ee}.{language}{suffix}My Anime S01E03.zh.asssubtitle_advance{bangumi_name} S{ss}E{ee}.{language}{suffix}Bangumi Name S02E07.zh-tw.srtsubtitle_none原样返回—语言标识符如zh、zh-tw会插入在文件名与后缀之间便于播放器与媒体库识别多语言字幕验证见 test_subtitle_pn_method 与 test_subtitle_advance_method。为降低延迟字幕重命名会跳过目标文件校验verifyFalse。四、剧集偏移Episode Offset从 v3.2 开始支持适用场景从 v3.2 开始AB 支持重命名时的剧集偏移。官方文档列出两种典型场景RSS 显示的剧集编号与预期不同例如 RSS 条目是S2E01但按连续播放顺序它应该对应S1E29番剧因播出间隔产生虚拟季度如葬送的芙莉莲第一季分两部分播出中间隔了 6 个月RSS 与 TMDB 数据因此出现季度/集数错位。为番剧配置偏移后AB 会在重命名时自动应用官方示例原始S02E01.mkv 应用偏移季度-1剧集28S01E29.mkv偏移的底层计算逻辑在 gen_path 中季度信息直接取自文件夹名文件夹本身已经按Season {season season_offset}建立见 save_path 生成因此季度偏移只影响文件夹名不重复作用于文件名而集数偏移则在重命名时实时计算episode Renamer._format_episode( Renamer._adjust_episode(file_info.episode, episode_offset) )_adjust_episode包含两条重要的保护规则第 0 集SP/OVA不应用偏移original 0 and episode_offset ! 0时直接返回 0避免把特典集错误偏移到常规集数对应 issue #977。非正数结果自动回退如果偏移后集数 ≤ 0如 EP5 偏移 -10几乎可判定为配置错误此时记录警告并保留原始集数防止误伤。此外半集偏移也得到支持12.5集应用偏移 -1 会得到11.5测试 test_offset_applies_to_fraction。如何配置偏移官方文档给出的手动配置步骤点击番剧海报打开番剧编辑弹窗打开高级设置设置季度偏移Season Offset和/或剧集偏移Episode Offset值或使用自动检测让 AB 建议正确的偏移值。高级设置界面同样包含用于种子匹配的自定义正则过滤器相关界面见番剧管理文档。配置后的偏移值会持久化到番剧条目上每次重命名循环自动读取并应用Renamer内部还会以(season_offset, episode_offset)形式对查询结果做缓存_offset_cache降低频繁查询的开销。自动检测Auto Detection对于结构复杂的番剧手动推算偏移容易出错。AB v3.2 提供自动检测能力官方流程为在编辑弹窗中点击自动检测按钮AB 分析 TMDB 剧集播出日期识别虚拟季度若发现 RSS 编号与 TMDB 数据不匹配AB 会建议正确的偏移值点击应用保存偏移。后台扫描线程还会定期检查现有订阅的偏移问题将可能存在偏移错位的订阅标记为需要审核状态——在番剧列表上以黄色!徽章提示从 v3.2 起的通知徽章机制详见 番剧管理。该设计让用户无需主动排查也能及时发现因播出计划变化而失效的偏移配置。五、重命名的一致性保障ab:renamed标签与冲突处理为保证重命名的幂等与可追踪重命名成功后 AB 会为种子打上ab:renamed标签_mark_renamed语义为顶层媒体文件全部就位字幕在同一轮循环中紧随其后重命名深层嵌套文件特典/花絮设计上从不重命名已带标签的任务不再重复调用下载器 API打标失败绝不影响重命名主流程重命名已成功、通知照发、本轮其余种子继续处理异常被吞掉后由下一轮自动补打none/normal方法不会打标。该标签常被外部脚本如 filebot、hlink 等用作过滤条件区分AB 已整理与原始下载任务对应 issue #147。此外针对同名目标被多个任务抢占、高版本 Revision 替换旧版本等场景Renamer通过rename_operation数据库表维护planned → old_staged → new_promoted → old_removed → done的状态机并配合租约锁lease保证并发安全_advance_replacement冲突目标会以RenameConflictEvent事件上报给通知模块。六、小结如何选择重命名方式方式名称来源输出示例适用场景pn种子标题86 - Eighty Six S01E01.mkv希望保留发布组标题信息命名贴近种子原名advance父文件夹名官方标题86 - Eighty Six(2023) S01E01.mkv追求媒体库标准命名标题含年份便于多季归档none—原样保留已由外部工具管理命名或不想改动种子文件名选择建议若媒体库对番剧标题的年份标注不敏感pn是最稳妥的默认选择AB 的出厂默认值若希望所有文件统一采用官方标题 标准季集格式可切换到advance。对于季数错位或虚拟季度的番剧务必结合手动偏移或自动检测补齐配置才能保证重命名结果与 TMDB 数据一致避免媒体库刮削错乱。相关参考重命名完整实现backend/src/module/manager/renamer.py重命名单元测试backend/src/test/test_renamer.py番剧管理设置与bangumi_manage配置docs/config/manager.md番剧管理偏移自动检测、通知徽章、归档docs/feature/bangumi.md赞分享后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载相关推荐如何用 Canvas render 为 Seelen-UI 的 Dock 插件绘制自定义图标如何用 Canvas render 为 Seelen UI 的 Dock 插件绘制自定义图标 想在 Seelen UI 的 dock seelen/weg后端前端音视频如何用 Docker Compose 为 llmware 启动 MongoDB 与 Milvus 并验证容器可用如何用 Docker Compose 为 llmware 启动 MongoDB 与 Milvus 并验证容器可用 在 llmware 的 RAG 流水线中Mo后端前端音视频CloudRetro快速入门5步部署你的专属云游戏服务CloudRetro快速入门5步部署你的专属云游戏服务 CloudRetro是一款基于Web的云游戏服务专为复古游戏设计让你能够在任何设备上通过浏览器畅玩后端音视频WebRTC上一篇星露谷农场规划器免费完成农场布局设计与存档导入下一篇mbedtls 多版本 TLS一份代码同时跑通 1.2 与 1.3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进