后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载AutoBangumi 通过解析聚合 RSS 订阅源结合字幕组与番剧名称自动生成下载规则实现订阅即追番的全自动流程。本指南以 Mikan Project 为例完整讲解如何获取 RSS 订阅链接、正确组织订阅源并深入剖析 AutoBangumi 后端从抓取 RSS、匹配番剧到投递下载的完整流水线帮助你搭建稳定、不重复下载的自动追番系统。认识 AutoBangumi 的 RSS 追番机制AutoBangumi 的追番能力建立在解析聚合 RSS 订阅源之上它周期性抓取你订阅的 RSS 源将每一条种子条目与已订阅番剧库进行匹配匹配成功后自动投递给下载客户端如 qBittorrent再交由改名、整理模块完成后续处理。从源码结构看这条流水线主要由三个模块协作完成RSS 引擎RSSEngine负责拉取 RSS、去重、匹配番剧并投递下载的核心引擎RSS 分析器RSSAnalyser负责把 RSS 条目解析为番剧Bangumi或剧场版Movie数据RSS 存储层负责 RSS 订阅源在数据库中的增删改查与启用/禁用状态管理。一条 RSS 订阅在数据库中对应一条RSSItem记录其字段定义在 RSSItem 模型 中字段类型默认值说明idint主键RSS 订阅唯一标识namestr空订阅源名称添加时若未指定会自动从 RSS 的channeltitle读取urlstrhttps://mikanani.meRSS 订阅链接aggregateboolFalse是否为聚合订阅源parserstrmikan使用的解析器类型mikan/tmdb/parserenabledboolTrue是否启用connection_statusstr空最近一次拉取状态healthy/errorlast_checked_atstr空最近一次拉取时间last_errorstr空最近一次拉取错误信息其中aggregate与parser两个字段决定了 RSS 的处理方式aggregateTrue表示该源为聚合订阅可被加入番剧的聚合 RSS 列表parser则决定条目标题与海报使用哪种解析器补全Mikan 主页解析或 TMDB 解析。获取 Mikan Project 的 RSS 订阅链接AutoBangumi 默认以 Mikan Project 提供的 RSS 链接作为追番数据源。要启用自动追番你需要先注册 Mikan Project 账号并获取专属的 RSS 订阅链接注册并登录 Mikan Project在个人设置中找到 RSS 订阅MyBangumi入口复制生成的 RSS 链接其格式如下https://mikanani.me/RSS/MyBangumi?tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 或 https://mikanime.tv/RSS/MyBangumi?tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx需要注意Mikan Project 主站在部分地区可能被屏蔽。如果无法直接访问请使用备用域名https://mikanime.tv/其订阅链接格式与主站一致同样以token参数标识你的专属订阅。拿到链接后在 AutoBangumi WebUI 中将其添加为 RSS 订阅即可。从 RSS API 实现 可以看到添加操作会调用RSSEngine.add_rss()如果未提供name引擎会先请求该 RSS 并读取其channeltitle作为订阅名见 get_rss_title同时会自动按 URL 去重——重复添加同一 URL 会返回失败提示。Mikan Project 订阅注意事项由于 AutoBangumi 会解析接收到的所有RSS 条目订阅源的干净程度直接决定追番效果。以下注意事项来自官方文档并结合源码实现加以说明在个人设置中启用高级选项Mikan Project 需要开启高级选项后才能获得完整的订阅控制能力如单字幕组订阅这是拿到可细分订阅链接的前提。每部番剧只订阅一个字幕组点击 Mikan Project 上的番剧海报打开子菜单选择单个字幕组。原因是 AutoBangumi 会为同一番剧的多个版本生成多条下载规则同一集可能被多个字幕组版本同时下载造成重复与磁盘浪费。单字幕组订阅可让匹配结果唯一、稳定。如果字幕组同时提供简体和繁体中文字幕Mikan Project 通常会提供选择方式请在订阅时就选定一种避免同一集出现简繁两个版本。如果没有字幕类型选择选项可以在 AutoBangumi 中设置filter进行过滤或在规则生成后在 qBittorrent 中手动过滤。目前不支持解析 OVA 和剧场版订阅OVA 与剧场版Movie不通过番剧 RSS 订阅流程解析剧场版需通过单独的剧场版Movie功能添加 RSS 链接进行下载见后文。为什么必须控制订阅粒度源码层面的证据从 RSS 引擎的匹配流程 可以看到引擎会把每个 RSS 条目的种子名与番剧库中全部活跃番剧做匹配match_bangumi_in_list也就是说订阅源里的每一条种子都会被纳入匹配范围。如果你的订阅源混入多个字幕组、简繁双语甚至无关内容那么同一集会被多个字幕组匹配成功并各自投递下载除非该番剧设置了发布组/分辨率偏好启用逐集去重见后文偏好去重无关条目会占用track_orphans存储或在关闭孤儿追踪时每轮重复参与内存匹配。这正是官方文档强调每部番剧只订阅一个字幕组、字幕只选一种的根本原因。用 filter 精确过滤订阅条目官方文档提到当字幕组没有提供字幕类型选择选项时可以在 AutoBangumi 中设置filter进行过滤。filter的本质是一组正则表达式作用于种子标题。从 get_torrents 的实现 可以看到完整逻辑系统先抓取 RSS 的 XML用 Mikan 站点解析器 提取每个item的标题、种子 URL 与主页链接如果未显式传入_filter则使用全局配置settings.rss_parser.filter把列表中的多个正则用|拼接成一个正则对每个条目标题执行re.search(_filter, title)匹配成功的条目会被排除即 filter 是排除语义如果 filter 为空则不排除任何条目re.search(, x)会匹配所有字符串源码中特别注释了这一点避免空过滤误排除全部内容。全局 filter 的默认值定义在 RSSParser 配置模型 中rss_parser: { enable: true, filter: [720, \\d-\\d], language: zh }默认排除包含720720p 分辨率或符合\d-\d模式如01-12这类合集集数区间标题的条目。你可以按需修改例如过滤掉特定字幕组、特定分辨率或指定语言的关键词。该配置同样支持通过环境变量AB_NOT_CONTAIN注入见 const.py 中的环境变量映射多个过滤词用|分隔。除了全局 filter番剧Bangumi与剧场版Movie各自还有独立的filter字段。以 download_bangumi 为例下载时会执行req.get_torrents(bangumi.rss_link, bangumi.filter.replace(,, |))——即番剧自身的 filter 用英文逗号分隔多个关键词运行时转换为正则的|分支只保留不匹配过滤条件的种子。把订阅源添加到 AutoBangumi在 WebUI 的 RSS 管理页面中添加订阅时你需要填写订阅名称可选留空时自动从 RSS 的 channel 标题读取订阅链接Mikan Project 的MyBangumiRSS 链接聚合订阅对应aggregate字段表示该源为聚合源解析器类型mikan默认使用 Mikan 主页解析标题与海报或tmdb使用 TMDB 补全标题、季度与海报。对应的后端 API 与能力如下均定义在 RSS 路由操作方法与路径说明查看全部订阅GET /rss返回全部 RSSItem 列表添加订阅POST /rss/add传入 RSSItem 数据批量启用POST /rss/enable/many传入 id 列表批量禁用POST /rss/disable/many禁用后该源不再参与抓取批量删除POST /rss/delete/many同时级联删除引用该源的种子记录更新订阅PATCH /rss/update/{id}修改名称、URL、聚合标记、解析器、启用状态刷新全部POST /rss/refresh/all立即触发一轮完整抓取刷新单个POST /rss/refresh/{id}只刷新指定订阅查看订阅种子GET /rss/torrent/{rss_id}查看该源下已记录的种子分析链接POST /rss/analysis把 RSS 链接解析为番剧/剧场版数据旧 API订阅番剧POST /rss/subscribe从搜索/收藏结果订阅番剧值得注意的细节删除某个 RSS 时数据库层会先删除所有引用该 RSS 的 torrent 记录再删除 RSS 本身避免外键约束报错见 RSSDatabase.delete。另外如果某 URL 之前因删除番剧而被停用重新添加同一 URL 时会自动重新启用源码注释提到这修复了删除番剧导致 RSS 静默断更的问题见 RSSDatabase.add。RSS 抓取引擎的工作流程理解底层机制有助于你更好地组织订阅。RSS 引擎的核心方法refresh_rss()见 engine.py每一轮会完成以下步骤加载订阅读取全部启用状态的 RSSItem若指定rss_id则只处理该源并发抓取按 RSS 主机urlparse得到的 netloc分组不同主机间并行抓取同一主机内的多个源串行请求且间隔 2 秒RSS_PER_HOST_DELAY。源码注释说明这是为了避免同一站点一次性收到大量请求而被整体限流HTTP 429去重通过check_new按种子 URL 判断是否为本轮新增已入库的种子不会重复处理内存匹配每轮只加载一次番剧库把所有新种子与番剧在内存中逐一匹配match_torrent。匹配成功且通过番剧 filter 的种子被关联bangumi_id偏好去重可选对设置了发布组/分辨率偏好的番剧按媒体类型 季度 集数的内容身份做逐集去重只保留偏好得分最高或得分相同但修订号更高的版本投递下载调用下载客户端add_torrent添加种子FAILED的种子不入库下一轮源里仍存在时会重新匹配重试ADDED与DUPLICATE都视为成功记录状态更新每条 RSS 的连接状态、最近检查时间与错误信息仅在状态从正常转为错误时发送一次失败通知避免每个周期重复告警入库把成功投递的种子写入数据库。匹配与过滤的细节match_torrent见 engine.py的逻辑值得特别注意即使番剧匹配成功如果该番剧设置了filter种子标题必须不匹配该过滤正则才会被关联。源码注释强调了一个关键设计——被过滤掉的种子不能挂在番剧名下否则OffsetScanner集数偏移扫描器会把用户明确排除的剧集也纳入偏移计算。这也是官方文档设置 filter 进行过滤建议在源码层面的印证。关于不支持 OVA 和剧场版订阅官方文档明确说明目前不支持解析 OVA 和剧场版订阅。从源码看剧场版走的是独立通道Movie 数据本身带rss_link字段download_movie 会直接请求该 RSS 链接并用 Movie 的 filter 过滤后投递下载RSSAnalyser 的解析流程 也会把种子区分为 Bangumi 与 Movie 两类Movie 使用official_title_parser_movie单独补全标题与海报。因此如果你的追番需求包含剧场版请在剧场版功能中添加对应的 RSS 链接而不是混入番剧订阅源。验证与排障查看订阅状态GET /rss返回的每条记录都带有connection_statushealthy/error、last_checked_at与last_error字段。若某个源持续error可从last_error定位是网络问题还是解析失败。手动刷新修改订阅或番剧规则后可调用POST /rss/refresh/{id}立即验证该源的抓取与匹配效果无需等待下一轮调度周期调度间隔由program.rss_time控制默认 900 秒见 Program 配置模型。失败重试机制投递失败的种子不会入库会在下一轮刷新时自动重试同时通过DownloadFailureEvent发送失败通知见 engine.py。检查已记录种子GET /rss/torrent/{rss_id}可查看某个订阅源下已入库的种子用于核对匹配结果是否如预期。小结AutoBangumi 的 RSS 追番链路可以概括为干净的单字幕组订阅源 → 周期性抓取与去重 → 内存匹配番剧 → filter 过滤 → 偏好去重 → 投递下载。官方文档给出的订阅注意事项启用高级选项、每番一字幕组、选定简繁、必要时用 filter 过滤、OV A/剧场版走独立通道正是为了让这条链路的每一步都能稳定命中、不产生重复下载。结合 RSSEngine 与 RSSAnalyser 的源码你可以进一步理解匹配粒度、过滤语义与失败重试机制从而根据自己的追番习惯把订阅源配置到最优状态。赞分享后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载相关推荐AutoBangumi 全自动追番流水线深度解析从 RSS 订阅解析到媒体库就绪AutoBangumi 全自动追番流水线深度解析从 RSS 订阅解析到媒体库就绪 AutoBangumi简称 AB本质上是一个面向动漫种子的 RSS 解析后端前端音视频【亲测免费】 ani-rss自动追番、订阅、下载蜜柑RSS动漫ani rss自动追番、订阅、下载蜜柑RSS动漫 在数字化时代动漫迷们对于追番的需求日益增长。今天我要向大家推荐一个开源项目——ani rss它能够帮助后端前端任务调度音视频AutoBangumi 全自动追番工具RSS 订阅解析、下载管理与媒体库整理核心机制详解AutoBangumi 全自动追番工具RSS 订阅解析、下载管理与媒体库整理核心机制详解 AutoBangumi简称 AB是一个基于 RSS 的全自动番剧后端前端音视频上一篇微服务上下文传递新范式Kratos元数据工具深度解析下一篇为什么开发Solidity必须用solc-select5大理由告诉你创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
