ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AutoBangumi 全自动追番工具:基于 RSS 的番剧下载、自动重命名与媒体库整理原理详解

AutoBangumi 全自动追番工具:基于 RSS 的番剧下载、自动重命名与媒体库整理原理详解 后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载AutoBangumi 是一款基于 RSS 订阅的全自动番剧下载与整理工具用户只需在 Mikan Project 等站点订阅番剧即可由程序自动完成新剧集追踪、下载、重命名与目录整理。本文以项目官方关于文档为骨架结合 RSS 引擎、重命名器、TMDB 解析器 等源码实现系统讲解其核心工作流、目录整理规范、重命名策略与源码级运行原理并给出完整的 Docker 快速部署步骤帮助你零门槛搭建一套配置一次、持续使用的全自动追番管线。关于 AutoBangumiAutoBangumi是一款基于 RSS 订阅的全自动番剧下载和整理工具。只需在 Mikan Project 或类似网站订阅番剧即可自动追踪和下载最新剧集。整理后的文件名和目录结构可直接兼容 Plex、Jellyfin 等媒体库软件无需额外的元数据刮削。也就是说从 RSS 抓取到下载完成、文件落盘的那一刻起媒体库软件就能直接识别并呈现正确的剧集封面、标题与季集信息中间没有任何人工介入。从架构上看AutoBangumi 由三部分组成后端服务backend/src/main.py基于 Python 的异步全栈负责 RSS 拉取、标题解析、下载器对接、文件重命名与数据库持久化WebUI 前端webui/src基于 Vue 3 的配置与管理界面提供 RSS 添加、番剧卡片、规则编辑、下载器设置等功能下载器适配层backend/src/module/downloader抽象 qBittorrent、aria2 等下载客户端统一完成种子添加、查询、重命名与删除。功能特性一览AutoBangumi 的核心设计目标可以概括为简单的一次性配置持续使用。围绕这一目标项目提供了以下关键能力简单的一次性配置持续使用无需操心的 RSS 解析器可提取番剧信息并自动生成下载规则番剧文件整理目录结构见下文全自动重命名——超过 99% 的番剧文件在重命名后可被媒体库软件直接刮削基于父文件夹名称自定义重命名所有子文件季中追番补全当季所有缺失剧集高度自定义选项可针对不同媒体库软件进行微调零维护完全透明运行内置 TMDB 解析器可生成完整的 TMDB 格式文件和番剧元数据支持 Mikan RSS 订阅的反向代理。核心工作流订阅 → 解析 → 下载 → 整理一条番剧从订阅到入库的完整链路在源码中对应RSSEngine.refresh_rss()backend/src/module/rss/engine.py拉取 RSS 条目遍历所有启用的 RSS 源通过RequestContent.get_torrents()抓取种子列表。源码中对同一主机的请求做了节流处理——RSS_PER_HOST_DELAY 2.0秒避免一次性轰炸同一站点触发 HTTP 429 限流issue #1026不同主机之间则并行拉取信号量上限为 5。标题解析与规则匹配将每个种子的标题交给解析器提取番剧名、季、集、字幕组、分辨率等信息再与数据库中的番剧订阅规则做匹配match_bangumi_in_list。命中过滤规则的种子会被跳过match_torrent。偏好去重对设置了preferred_group字幕组偏好或preferred_resolution分辨率偏好的番剧同一集只保留最匹配偏好的版本避免多字幕组重复下载_select_preference_skips。投递下载器通过DownloadClient.add_torrent()把种子加入 qBittorrent 或 aria2。投递失败的种子不入库下一轮刷新时会重新匹配并重试同时会发出DownloadFailureEvent通知。持久化与状态维护成功的种子写入数据库并更新 RSS 源的connection_status、last_checked_at等健康状态字段工作 → 出错的状态跃迁会触发RssFailureEvent通知。整个流程由后台调度循环定时驱动用户无需干预。RSS 解析器从标题到结构化订阅规则解析器的职责AutoBangumi 的解析器用于分析 RSS 条目标题并生成番剧、季度、集数、字幕组等结构化信息见 docs/config/parser.md。在 WebUI 中可以配置以下全局解析参数WebUI 选项说明对应config.json参数rss_parser节默认值启用是否启用 RSS 解析器关闭后不再自动解析新条目enabletrue标题解析器经典解析器稳定保持原有行为通用解析器Preview支持剧集范围、OVA、剧场版与混合合集两种模式不会自动互相回退engineclassic/tokenizerclassic语言解析器偏好的标题语言languagezh/jp/enzh排除全局过滤规则支持普通字符串或正则表达式匹配的条目在解析阶段被过滤filter[720, \\d-\\d]此外从 v3.1 开始单个 RSS 的来源解析器在添加或编辑 RSS 时设置可以按订阅源独立选择解析引擎。三种解析路径在源码层标题解析由TitleParserbackend/src/module/parser/title_parser.py统一调度包含三条路径确定性解析raw_parser通过内置的 tokenizer / 经典正则引擎提取标题结构。对无法识别的 PV、合集、range 等类型会按业务准入策略直接拒绝防止误订阅Mikan 主页解析mikan_parser.py当 RSS 条目携带番剧主页链接时抓取主页中的官方标题自动去除第 X 季后缀与海报图用于生成规范的订阅名称LLM 解析可选支持 OpenAI 兼容接口、Anthropic Claude、Google Gemini 等多供应商提供primaryLLM 优先与fallback确定性解析失败时兜底两种模式并内置熔断、并发信号量与结果缓存机制。解析完成后标题被转换为Bangumi订阅记录自动生成下载规则整个过程无需人工编写任何过滤规则。番剧文件整理媒体库友好的目录结构AutoBangumi 自动将下载完成的文件整理为以下结构这与 Plex / Jellyfin 的刮削约定完全对齐Bangumi ├── bangumi_A_title │ ├── Season 1 │ │ ├── A S01E01.mp4 │ │ ├── A S01E02.mp4 │ │ ├── A S01E03.mp4 │ │ └── A S01E04.mp4 │ └── Season 2 │ ├── A S02E01.mp4 │ ├── A S02E02.mp4 │ ├── A S02E03.mp4 │ └── A S02E04.mp4 ├── bangumi_B_title │ └─── Season 1该结构包含两个关键设计顶层目录按番剧标题命名季内文件统一放入Season N子目录文件采用标题 SxxExx的季集命名媒体库无需依赖文件名以外的任何信息即可完成匹配。全自动重命名超过 99% 文件可直接被媒体库刮削重命名示例AutoBangumi 的全自动重命名引擎能识别字幕组发布名中的标题、季、集、分辨率等要素并转换为标准媒体库命名[Lilith-Raws] Kakkou no Iinazuke - 07 [Baha][WEB-DL][1080p][AVC AAC][CHT][MP4].mp4 Kakkou no Iinazuke S01E07.mp4三种重命名方式重命名行为由番剧管理设置中的rename_method控制docs/config/manager.md、docs/feature/rename.md方式语义示例pn默认Pure Name使用种子下载名中的标题信息[Lilith-Raws] 86 - Eighty Six - 01 ...mkv→86 - Eighty Six S01E01.mkvadvance高级重命名使用父文件夹名称作为标题/downloads/Bangumi/86 - Eighty Six(2023)/Season 1/...mkv→86 - Eighty Six(2023) S01E01.mkvnone不重命名文件保持原样—此外AutoBangumi 还支持收藏重命名对位于收藏一级目录、可从文件名解析出集数的剧集进行重命名并自动归入Season文件夹与BangumiCollection目录字幕文件重命名pn/advance均有对应的subtitle_pn/subtitle_advance变体可同时重命名同目录下的字幕文件并保留语言后缀剧集偏移从 v3.2 起支持按季偏移与集偏移修正编号例如S02E01应用季度 -1、剧集 28后变为S01E29适用于 RSS 编号与 TMDB 数据不一致、或因播出间隔产生虚拟季度的番剧。源码层面的重命名实现在 backend/src/module/manager/renamer.py 中Renamer.gen_path()统一负责目标路径生成。几个值得注意的实现细节集数格式化为两位补零S01E07而总集篇等半集如 12.5会保留小数避免覆盖同季整数集issue #667对第 0 集Special / OVA与会导致非正数的偏移自动忽略防止误覆盖正片issue #977电影 / 剧场版不使用SxxExx编号而是生成Title (Year).ext格式与父文件夹命名保持一致重命名成功后会给下载器任务打上ab:renamed标签_RENAMED_TAG供 filebot、hlink 等外部脚本过滤已处理任务issue #147复杂的修订版本替换流程V1 → V2 换源以状态机方式分步执行并带有租约锁与回滚机制保证媒体库索引不被破坏。季中追番与剧集补全AutoBangumi 支持季中追番补全当季所有缺失剧集当用户在中途订阅某部正在播出的番剧时程序会自动检测当季已播出但尚未下载的集数并主动补全。该功能在 backend/src/module/manager/collector.py 中实现SeasonCollector.collect_season()给定番剧规则通过搜索器或直接抓取 RSS 链接获取整季种子列表经release_fits_bangumi过滤后批量投递下载器eps_complete()后台循环定期查询not_complete的番剧对eps_collect标记为 False 的番剧自动执行整季收集。如果下载的种子已经存在程序会返回 406 并标记种子已经添加避免重复下载收集失败时则会回滚刚插入的订阅行不留幽灵规则。高度自定义选项与零维护运行番剧管理配置番剧管理器设置config.json的bangumi_manage节提供了针对不同媒体库软件微调的能力参数说明WebUI 选项默认值enable启用番剧管理器启用trueeps_complete启用剧集补全番剧补全falserename_method重命名方式normal/pn/advance/none重命名方式pngroup_tag为下载器任务添加字幕组相关标签添加组标签falseremove_bad_torrent移除下载器中状态异常的种子删除坏种falsetrack_orphans把未匹配到规则的种子记录为未匹配种子关闭后后续新增规则可立即接住 RSS 中仍存在的旧条目记录未匹配种子true其中track_orphans对应一个重要的运行哲学默认开启时未匹配的种子会被记录以便追踪关闭后它们会在每轮 RSS 刷新时重新尝试匹配让后补规则可以接住仍留在源里的旧集。网络与元数据服务配置AutoBangumi 内置的 TMDB 解析器需要访问外部元数据服务docs/config/network.md 中提供了网络覆盖能力network节参数说明默认值tmdb_base_urlTMDB API 地址网络受限时可改为可访问的反代地址https://api.themoviedb.orgtmdb_api_key自定义 TMDB API Key留空时使用内置共享 keybgm_base_urlBangumi API 地址https://api.bgm.tv在源码中tmdb_parserbackend/src/module/parser/analyser/tmdb_parser.py会实时读取这些配置issue #1042并对查询结果做 512 条上限的 LRU 缓存用户自配 key 优先于内置共享 keyissue #975。解析器不仅提取标题、季、年份与海报还会统计各季已播集数、检测基于播出间隔的虚拟季度断点并为剧集偏移的自动检测提供数据支撑。快速开始Docker 一键部署AutoBangumi 推荐使用 Docker 部署完整步骤见 docs/deploy/quick-start.md。1. 创建数据与配置目录# 使用绑定挂载 mkdir -p ${HOME}/AutoBangumi/{config,data} cd ${HOME}/AutoBangumi也可以选择 Docker 卷docker volume create AutoBangumi_config docker volume create AutoBangumi_data2. 使用 Docker CLI 部署docker run -d \ --nameAutoBangumi \ -v ${HOME}/AutoBangumi/config:/app/config \ -v ${HOME}/AutoBangumi/data:/app/data \ -p 7892:7892 \ -e TZAsia/Shanghai \ -e PUID$(id -u) \ -e PGID$(id -g) \ -e UMASK022 \ --networkbridge \ --dns8.8.8.8 \ --restart unless-stopped \ --log-opt max-size10m \ --log-opt max-file3 \ ghcr.io/estrellaxd/auto_bangumi:latest3. 使用 Docker Compose 部署将以下内容保存为docker-compose.ymlversion: 3.8 services: AutoBangumi: image: ghcr.io/estrellaxd/auto_bangumi:latest container_name: AutoBangumi volumes: - ./config:/app/config - ./data:/app/data ports: - 7892:7892 network_mode: bridge restart: unless-stopped dns: - 8.8.8.8 environment: - TZAsia/Shanghai - PGID$(id -g) - PUID$(id -u) - UMASK022启动docker compose up -d4. 获取 Mikan RSS 订阅链接访问 Mikan Project注册账号并登录点击右下角的RSS按钮复制链接。RSS 链接格式如下https://mikanani.me/RSS/MyBangumi?tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 或 https://mikanime.tv/RSS/MyBangumi?tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx关于订阅源的详细注意事项如每部番剧只订阅一个字幕组、简繁字幕二选一、OVA/剧场版订阅限制等请参阅 RSS 订阅设置。Mikan Project 主站在部分地区可能被屏蔽可使用备用域名mikanime.tv。5. 首次配置安装 AB 后WebUI 将自动启动但主程序处于暂停状态。访问http://abhost:7892打开网页默认用户名为admin默认密码为adminadmin首次登录后请立即修改输入下载器的地址、端口、用户名和密码点击应用保存配置AB 将重启右上角圆点变绿表示正常运行点击右上角按钮勾选聚合 RSS选择解析器类型输入 Mikan RSS 链接。等待 AB 解析聚合 RSS解析完成后将自动添加番剧并管理下载。番剧管理界面WebUI 的首页以卡片形式展示所有订阅番剧docs/feature/bangumi.md点击番剧海报即可管理单个番剧条目规则选择同一番剧存在多个下载规则如不同字幕组时会弹出选择框通知徽章黄色!徽章表示订阅需要审核如检测到偏移问题数字徽章表示存在多个规则组合徽章! | 2同时提示两者剧集偏移自动检测点击自动检测AB 分析 TMDB 剧集播出日期识别虚拟季度并建议正确的偏移值后台扫描线程还会定期检查现有订阅的偏移问题归档 / 取消归档可手动归档已完结番剧或由 AB 依据 TMDB 的系列状态已完结 / 已取消自动归档禁用 / 删除禁用后不再下载或重新解析注意直接从聚合 RSS 中删除条目它会在下次解析周期被重新创建高级设置提供季度偏移、剧集偏移、以及用于种子匹配的自定义正则过滤器。社区、贡献与许可证AutoBangumi 提供官方更新通知频道与 Bug 反馈群组欢迎提交 Issues 和 Pull Requests 参与贡献。项目感谢 Sean 等贡献者的大力帮助完整贡献者名单可见于项目贡献者图。免责声明由于 AutoBangumi 通过非官方版权渠道获取番剧请勿将其用于商业用途、勿制作包含 AutoBangumi 的视频内容在国内视频平台版权相关方上发布、勿将其用于任何违反法律法规的活动。AutoBangumi 仅供学习和个人使用。项目采用 MIT License 开源发布代码仓库中包含完整的 贡献指南、架构设计文档 与 更新日志供开发者深入研读。赞分享后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载相关推荐【免费下载】 AutoBangumi基于RSS的全自动追番整理工具详解AutoBangumi基于RSS的全自动追番整理工具详解 项目概述 AutoBangumi是一款专为动漫爱好者设计的自动化工具它通过RSS订阅实现番剧的自动后端前端音视频AutoBangumi基于 RSS 的全自动追番整理下载工具技术解析AutoBangumi基于 RSS 的全自动追番整理下载工具技术解析 AutoBangumi 是一个基于 RSS 的 全自动追番整理下载工具 你只需要在 M后端前端音视频AutoBangumi 全自动追番工具RSS 订阅解析、下载管理与媒体库整理核心机制详解AutoBangumi 全自动追番工具RSS 订阅解析、下载管理与媒体库整理核心机制详解 AutoBangumi简称 AB是一个基于 RSS 的全自动番剧后端前端音视频上一篇Proxmox VE Helper-Scripts终极部署检查清单10个步骤确保100%成功安装下一篇OrcaSlicer 3D打印切片软件安装配置指南Windows/macOS/Linux 启动排障创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表