
后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载本文基于仓库内 docs/ja/changelog/3.3.md3.3 Beta 发布说明为主线并结合 docs/changelog/3.3.md英文 Stable 版 changelog与后端源码展开。AutoBangumi 3.3 是一次大型现代化版本后端整体迁移到全异步架构REST API 保持向后兼容aria2 被提升为正式的下载后端整理能力从 TV 剧集扩展到剧场版/OVA/Special番组级别可设置字幕组与分辨率偏好WebUI 从轮询改为 SSE 实时推送同时补上了应用内更新、多提供商 LLM 解析器与一整套安全加固。读完本文你将掌握 3.3 的核心架构变化、各新特性的配置入口与底层实现路径以及升级时的注意事项。一、版本总览一次现代化大版本3.3 在发布说明中被明确定位为一次大型现代化modernization版本主要亮点集中在七条应用内更新日志页面即可检查、应用与回滚更新更新包经过 sha256 校验与 ed25519 签名验证。多提供商 LLM 解析器支持 OpenAI 兼容端点DeepSeek、Ollama、LM Studio、OpenRouter 等、Anthropic Claude 与 Google Gemini。aria2 成为正式后端支持添加、查询、重命名、管理与去重检测。剧场版 / OVA / OAD / SP / Special 识别以适合媒体库的结构进行整理。番组级发布偏好可对每个番组指定优先字幕组与分辨率。SSE 实时更新状态、下载器、日志三个页面改为订阅/api/v1/events/stream替代此前的轮询。安全加固PyJWT bcrypt 认证栈、登录 IP 白名单、MCP 白名单、Bearer Token、公开健康检查等。其中REST API 行为保持向后兼容已存在的数据库会在首次启动时自动完成 schema 迁移英文版 changelog 注明现有数据库自动升级至 schema v24。3.3 的版本轨迹也值得注意日文发布说明对应的是Beta 阶段的公告而英文版 docs/changelog/3.3.md 持续追踪了 3.3.4稳定版整合、3.3.5 与 3.3.6 三个补丁版本本文在对应小节会一并梳理。二、升级注意事项アップグレードメモ日文发布说明用三条升级提示点明了 3.3 的运维要点升级前务必确认数据库迁移自动执行首次启动时自动运行迁移无需手工操作。迁移失败时会显式中止启动见下文源码证据不会静默带病运行。Docker 内使用应用内更新必须设置重启策略需要将容器重启策略配置为restart: unless-stopped否则更新流程无法让容器自动重启完成换新。既有 qBittorrent 配置无需改动原有 qB 配置开箱即用aria2 用户则可直接从 AutoBangumi 完成下载的管理与整理。此外日文说明明确征集 Beta 反馈重点关注三块新功能aria2 配置、剧场版/Special 整理、以及发布偏好去重逻辑。英文 changelog 还补充了一条对整理结果有直接影响的说明group_tag保持其历史含义仅用于 qB 规则命名重命名后的文件名不变因此既有做种库不会被改动。三、后端架构现代化从上帝对象到全异步组合根3.3 的后端重构是本次版本的地基工程重构的原则是REST API 行为不变因此对使用者几乎是透明的但对源码结构的影响是根本性的。3.1 数据库层全面异步化数据库层整体迁移到sqliteaiosqlite仓库的 异步引擎定义 展示了关键实现用create_async_engine与async_sessionmakerAsyncSession、expire_on_commitFalse构造异步会话工厂通过连接事件为每条连接设置 SQLite pragmaforeign_keysON、journal_modeWAL、busy_timeout5000。源码注释解释得很清楚旧的同步栈隐含地由单个 Session 串行化而多个 aiosqlite 连接并发写入时WAL读不阻塞写加上 busy_timeout写冲突时等待而非立刻报错是避免database is locked的必要手段。重构后事件循环上不再出现同步数据库调用。英文 changelog 明确这是本次现代化的一部分repositories 与Database全部运行在 aiosqlite 之上。3.2 组合根 AppContext 取代 Program 上帝对象原先的Program上帝对象被 lifespan 持有的AppContext组合根取代。在 组合根实现 中可以看到AppContext.build()是纯装配pure wiring构造对象图但不做任何 I/O启动阶段startup()被 lifespan await数据库迁移失败会显式中止启动不再静默继续生命周期操作start/stop/restart/reload统一由asyncio.Lock串行化下载器等待重试循环最多 10 次、每次间隔 30 秒作为受监督的后台任务运行避免阻塞 lifespan 与/start、/restartAPI下载器状态带 60 秒 TTL 缓存取代旧的ProgramStatus.check_downloader_status。3.3 通用周期任务PeriodicTask 与 Scheduler与组合根配套的是 调度器实现 中的PeriodicTask与Scheduler。PeriodicTask将运行一次 tick然后等待间隔的循环抽象出来替代原先四个手写 Thread 混入类interval与enabled是每次实时读取的 callable因此配置修改无需重建任务即可生效。单次 tick 的逻辑集中在 loops.py每个函数对应原sub_thread.py里循环体的一段rss_tick、rename_tick、offset_scan_tick、update_check_tick、calendar_tick。一个值得注意的细节是PeriodicTask._loop()对interval 0如用户把 RSS/重命名间隔配成 0会回退到 1 秒等待这正是英文 changelog 3.3.6 中 #1117 修复的后台循环空转、日志暴涨问题源码注释直接引用了该 issue 号。3.4 下载器 Protocol 与能力标记后端下载器改用 Protocol 声明能力见 下载器协议CoreDownloaderClient是每个后端必须实现的最小协议认证 添加种子DownloaderClient是完整异步表面查询、重命名、管理、RSS 规则等每个具体客户端通过类属性DownloaderCapabilitiescan_query/can_rename/can_manage/can_rss_rules声明能力子集门面DownloadClient据此跳过不支持的操作而非直接报错。qBittorrent 登录会话在多次操作间复用遇到 401/403 自动重新认证对应 #1039、#900。英文 changelog 同时强调了一个诚实性问题下载器客户端现在如实上报添加结果AddResult.ADDED / DUPLICATE / FAILED传输层故障不再被误判为重复添加。3.5 配置热重载的唯一入口所有配置变更统一走AppContext.reload_settings()见 context.py它是一次性编排异步重载磁盘配置、重置共享 HTTP 客户端、清空 TMDB/Mikan/海报/LLM 解析器等端点相关缓存、解除下载器凭据失败闩锁、重建通知管理器并在调度器运行时停止—重启后台任务。调用方被明确要求只能走这个入口不能直接settings.load()否则 HTTP 客户端、通知器、调度器与解析器缓存会与新配置脱节。3.6 表驱动迁移数据库迁移改为表驱动table-driven实现见 migrations.py每个迁移条目自带already_applied守卫判断该迁移是否已被SQLModel.metadata.create_all提前应用取代旧版按版本硬编码的 if 链迁移只依赖同步Connection可通过async_engine.begin()conn.run_sync(...)执行英文 changelog 提到 3.3 为旧数据库补齐了缺失索引此前只有全新数据库才有offset 扫描与偏好去重查询由迁移 v13/v14 提供索引支撑。四、应用内更新检查、应用与回滚日志页面新增了更新管理入口可以完成检查更新、应用更新与回滚三个动作。英文 changelog 给出了底层保障细节更新包先做sha256 校验再做ed25519 签名验证未签名的发布会被拒绝且每次启动都会重新验证签名应用更新前会对数据库做快照snapshot推进promotion前备份回滚有据可依依赖同步在应用时以非 root 用户执行要求容器以restart: unless-stopped运行以便更新完成后自动重启自身。仓库中 update 模块 承载签名校验与版本检查ab_update_pubkey.pem即签名公钥docs/config/update.md 描述了更新通道配置。注意这是 Docker 部署下才完整的链路非容器环境需自行处理进程重启。五、多提供商 LLM 解析器3.3 的解析器不再绑定单一 LLM 供应商而是支持三种类别OpenAI 兼容端点DeepSeek、Ollama、LM Studio、OpenRouter 等Anthropic ClaudeGoogle Gemini。并新增可选的运行模式fallback默认先正则解析LLM 只兜底解析失败的任务primary优先交给 LLM 解析。调用侧具备超时、缓存、并发上限与熔断器failure breaker并且请求会走应用代理。仓库的backend/src/module/llm_plugins/installer.py与loader.py实现了插件式加载plugins/目录下自带 codex-chatgpt 与 github-copilot 两个示例插件对应的配置说明见 docs/config/llm.md。英文 changelog 还提到一个行为变化OpenAI 解析器从整体替换正则解析器改为在正则解析失败时救援并且解析过程使用AsyncOpenAI不再阻塞事件循环。六、aria2成为一等公民下载后端此前 aria2 只能添加种子整理环节静默无效3.3 将其提升为正式后端能力包括真实添加/查询/重命名/管理诚实的重复检测与 aria2 的实时状态对账不再依据过期缓存判断碰撞安全的文件系统重命名拒绝覆盖已存在的文件偏移量解析通过持久化的 gid↔番组映射完成offset resolution。配套的还有多项修复AutoBangumi 之外删除下载时会清理过期的重复追踪记录元数据抓取中的 magnet 不再导致下载器列表崩溃。英文 changelog 还补充了 qBittorrent 侧的同级修复重命名验证必须真正看到新文件名才算成功#754、#749自签名证书不再导致 SSL 连接失败#923。后端实现集中在 downloader/client 目录与 aria2 数据库层测试可参考 test_aria2_downloader.py。配置方式见 docs/config/downloader.md。七、剧场版 / OVA / Special媒体库友好整理3.3 的解析器新增了对非 TV 内容类型的识别涵盖 剧场版/劇場版/电影版/Movie 与 OVA/OAD/SP/Special 等标记对应模型中的episode_type字段整理策略是媒体库友好的剧场版/电影整理为扁平的标题 (年份)目录结构并支持 TMDBsearch/movie兜底查询Special归入 Season 0Plex/Jellyfin 的 Specials 惯例多文件电影种子保留各文件不同文件名其中最大的文件获得干净的主名。安全细节也一并落实季偏移不再可能把普通剧集误挪进 Season 0只有真正的 Special 才会落入该目录。相关测试见 test_movie_parser.py规则解析的完整说明见 docs/feature/rename.md 与 docs/config/parser.md。八、番组级发布偏好字幕组 分辨率优先3.3 支持为每个番组单独设置优先字幕组与/或优先分辨率。当多个字幕组发布同一集时只有最匹配的会被下载而不是全部收下——这就是日文发布说明中提到的发布偏好去重preference dedup。底层实现上去重依赖严格的发布身份匹配。在 revision_policy.py 中可以看到 3.3.4 引入的修订版替换策略与身份比较逻辑preference_identity番组 ID、媒体类型、季/集、字幕组、分辨率必须一致与preference_revision新版本号必须更高共同决定是否允许替换。默认hold策略会同时保留新旧下载并在界面报告冲突可选的全局replace策略走暂存旧文件 → 提升新文件 → 清理旧任务的可恢复三段式流程且自动替换被刻意限制为两个单文件任务集合、身份不完整、多归属与非升级场景一律保持 hold。相关测试见 test_revision_policy.py。九、SSE 实时 WebUI取代三个轮询循环WebUI 的状态、下载器、日志三个视图此前各自维护一个轮询循环3.3 统一改为订阅/api/v1/events/stream这一个 SSE 端点。仓库的 SSE 端点实现 提供了精确细节单连接按 tick 节拍分别推送多种事件status 每 3 秒、downloader 每 5 秒、log 每 10 秒、notification 每 3 秒节拍与原轮询间隔一一对应下载器查询设置 3.0 秒超时上限当 qB/aria2 不可达时认证重试可能阻塞 20–30 秒而 SSE 是单连接串行推送不设上限会把 status/log 事件一起卡住即 changelog 所说死掉的下载器不再冻结整个流下载器未配置、不可达或超时时返回显式的降级degraded负载而不是静默挂起前端订阅失败时回退到原有轮询逻辑保证兼容。配套的 WebUI 改进还包括组件系统统一到 naive-ui修复了可能让 Config 页空白的主题崩溃naive-ui 2.44 保证 Vue 3.5 兼容、日历拖拽排期、RSS 页面单条刷新/全部刷新按钮、安全设置界面IP 白名单、令牌管理、WCAG AA 对比度、移动端 44px 触控目标、自托管 Inter 字体不再加载 Google Fonts对国内网络尤其友好、日志视图只渲染最新 1000 行等。十、安全加固认证栈、白名单与公开健康检查3.3 的安全面调整集中在认证栈替换从不再维护的python-jose/passlib涉及 CVE-2024-33663、CVE-2024-33664迁移到 PyJWT bcrypt既有密码包括超过 72 字节的无需改动即可继续使用登录 IP 白名单限制可登录来源MCP 白名单 Bearer Token 双认证MCP 端点支持 CIDR 白名单与 Bearer Token 双重校验Bearer Token 支持认证端点现在接受Authorization: Bearer公开健康检查未认证的GET /health存活端点返回{status, version, db_ok}配套 DockerHEALTHCHECKCSRF 加固破坏性 API 端点从 GET 改为 POST。3.3.4 还在此之上补入了多用户认证能力#1074首次运行管理员引导、持久化多用户会话、用户管理、以哈希存储且仅展示一次的 scopedapi/mcp令牌改密码、禁用账号、登出都会撤销对应会话浏览器刷新仅依赖 HttpOnly cookie。英文 changelog 的 beta 说明特别提到令牌明文展示在关闭弹窗、路由失活与迟到响应竞态含移动端 bottom-sheet 路径时都会被擦除。认证相关配置见 docs/config/security.md源码可参考 security 模块。十一、3.3.4 → 3.3.6稳定化与补丁要点日文发布说明对应 3.3 的 Beta 阶段英文 changelog 则记录了随后三个稳定补丁的取舍一并列出便于决策是否升级3.3.4稳定整合Classic 仍是默认解析器Universal Parser Preview 与自动修订替换均为显式 opt-in归档番组不再出现在日历#107706v2这类带版本号的剧集不再误触发 offset 复查#1072TMDB 电视/电影搜索遵循配置的 locale#1075CI 新增隔离运行时、Chromium/WebKit、真实 qBittorrent 三条 E2E 通道。3.3.5重新订阅时恢复被孤立清理停用的独立 RSS feed#1095Telegram 通知的海报改为按源 URL 发送服务端拉取失败依次回退到本地 multipart 上传、纯文本消息完成通知不再因海报失败而丢失#1094解析器 Classic 引擎对齐 Preview 的准入策略无集数单发带发布证据但无 Special/Movie 标记按季收藏接纳弱标题字符串仍被拒绝#1092批量重置规则不再触发外键回滚并顺带清理陈旧去重记录配置中未设置的密码/API Key 不再渲染成幽灵********掩码3.2.3/3.2.4 窗口期写入的字面掩码哨兵会在加载时擦除并提示重新输入。3.3.6修复 RSS 匹配回归——解析器重建title_raw后不再总是种子名的子串#1103、#1114新增重建标题等于存储title_raw也可匹配的规则且旧数据无需迁移搜索 RSS 多季时不再把其他季下载到本番组#1105httpcore 在 CONNECT 成功但 TLS 握手失败时泄漏隧道连接导致PoolTimeout现在超时后切换到全新客户端且不打断在途请求#1104Unicode 罗马数字Ⅱ等识别为季号、全角破折号包裹的中文标题被去除#1108Docker 健康检查读取配置的 WebUI 端口并依次探测 IPv4/IPv6 回环#1106日志暴涨回退 1 秒间隔的修复即前文所述调度器行为#1117。十二、性能与工程指标英文 changelog 记录了一组可验证的性能与工程改进标题解析器约快 16%全部静态正则预编译Renamer 兜底查询批量处理201 次查询降为 2 次200 个种子时约 11 倍通知分发跨条目并行化先修复了底层 HTTP 上下文竞态后端测试套件从 3.2 的 726 个增至 990 个E2E 套件真实 qBittorrent 模拟 RSS via Docker67/67 全绿CI 引入 mypy 零错误检查scripts/dev.sh提供一键式种子开发环境。总结AutoBangumi 3.3 的实质是一次地基加固 能力扩张的版本全异步后端保证了事件循环健康aria2 从只能添加变成可管理、可整理的正式后端剧场版/Special 与番组级偏好补齐了媒体库整理的关键拼图SSE 让 WebUI 状态刷新不再依赖轮询安全栈的替换则清掉了两个已知 CVE 的隐患。升级时只需注意三条数据库迁移自动执行、Docker 内应用更新需要restart: unless-stopped、既有 qBittorrent 配置不受影响。对于 aria2 用户与重度依赖剧场版/Special 整理的部署Beta 反馈焦点所指向的三块区域aria2 配置、非 TV 整理、偏好去重也正是建议在升级后重点回归验证的路径。赞分享后端前端音视频【免费下载链接】Auto_BangumiAutoBangumi - 全自动追番工具项目地址https://gitcode.com/gh_mirrors/au/Auto_Bangumi点击查看免费下载相关推荐AutoBangumi 3.3 现代化版本深度解析全异步后端、aria2 一等公民与 SSE 驱动 WebUIAutoBangumi 3.3 现代化版本深度解析全异步后端、aria2 一等公民与 SSE 驱动 WebUI AutoBangumi 3.3 是该项目的一次后端前端音视频AutoBangumi 3.3 全量解析异步架构重构、aria2 一等公民化与多用户安全体系AutoBangumi 3.3 全量解析异步架构重构、aria2 一等公民化与多用户安全体系 AutoBangumi 3.3 是该项目历史上规模最大的一次发版后端前端音视频AutoBangumi后端日志等级管理动态调整与场景适配AutoBangumi后端日志等级管理动态调整与场景适配 日志系统痛点与解决方案 你是否曾在调试AutoBangumi时被海量INFO日志淹没关键错误信息或后端前端音视频上一篇Instatic 仓库 Agent 技能实战agent-browser 浏览器自动化 CLI 全面指南下一篇build-your-own-x从零构建经典项目的完整学习指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考