Skip to content

REST API 参考

AutoBangumi 在 /api/v1 路径下提供 REST API。除登录和设置向导外,所有端点都需要 JWT 认证。

基础 URL: http://your-host:7892/api/v1

认证: 将 JWT 令牌作为 cookie 或 Authorization: Bearer <token> 请求头传入。

交互式文档: 在开发模式下运行时,可在 http://your-host:7892/docs 访问 Swagger UI。


认证

登录

POST /auth/login

使用用户名和密码进行认证。

请求体:

json
{
  "username": "string",
  "password": "string"
}

响应: 设置包含 JWT 令牌的认证 cookie。

刷新令牌

GET /auth/refresh_token

刷新当前的认证令牌。

登出

GET /auth/logout

清除认证 cookie 并登出。

更新凭据

POST /auth/update

更新用户名和/或密码。

请求体:

json
{
  "username": "string",
  "password": "string"
}

Passkey / WebAuthn v3.2+

使用 WebAuthn/FIDO2 Passkey 进行无密码认证。

注册 Passkey

POST /passkey/register/options

获取 WebAuthn 注册选项(质询、依赖方信息)。

POST /passkey/register/verify

验证并保存来自浏览器的 Passkey 注册响应。

使用 Passkey 认证

POST /passkey/auth/options

获取 WebAuthn 认证质询选项。

POST /passkey/auth/verify

验证 Passkey 认证响应并签发 JWT 令牌。

管理 Passkey

GET /passkey/list

列出当前用户所有已注册的 Passkey。

POST /passkey/delete

通过凭据 ID 删除已注册的 Passkey。


配置

获取配置

GET /config/get

获取当前应用程序配置。

响应: 完整配置对象,包括 programdownloaderrss_parserbangumi_managernotificationproxyexperimental_openai 部分。

更新配置

PATCH /config/update

部分更新应用程序配置。只需包含您想要更改的字段。

请求体: 部分配置对象。


番剧(动画规则)

列出所有番剧

GET /bangumi/get/all

获取所有动画下载规则。

通过 ID 获取番剧

GET /bangumi/get/{bangumi_id}

通过 ID 获取特定动画规则。

更新番剧

PATCH /bangumi/update/{bangumi_id}

更新动画规则的元数据(标题、季度、集数偏移等)。

删除番剧

DELETE /bangumi/delete/{bangumi_id}

删除单个动画规则及其关联的种子。

DELETE /bangumi/delete/many/

批量删除多个动画规则。

请求体:

json
{
  "bangumi_ids": [1, 2, 3]
}

禁用/启用番剧

DELETE /bangumi/disable/{bangumi_id}

禁用动画规则(保留文件,停止下载)。

DELETE /bangumi/disable/many/

批量禁用多个动画规则。

GET /bangumi/enable/{bangumi_id}

重新启用之前禁用的动画规则。

刷新海报

GET /bangumi/refresh/poster/all

从 TMDB 刷新所有动画的海报图片。

GET /bangumi/refresh/poster/{bangumi_id}

刷新特定动画的海报图片。

日历

GET /bangumi/refresh/calendar

从 Bangumi.tv 刷新动画放送日历数据。

重置全部

GET /bangumi/reset/all

删除所有动画规则。请谨慎使用。


RSS 订阅源

列出所有订阅源

GET /rss

获取所有已配置的 RSS 订阅源。

添加订阅源

POST /rss/add

添加新的 RSS 订阅源。

请求体:

json
{
  "url": "string",
  "aggregate": true,
  "parser": "mikan"
}

启用/禁用订阅源

POST /rss/enable/many

启用多个 RSS 订阅源。

PATCH /rss/disable/{rss_id}

禁用单个 RSS 订阅源。

POST /rss/disable/many

批量禁用多个 RSS 订阅源。

删除订阅源

DELETE /rss/delete/{rss_id}

删除单个 RSS 订阅源。

POST /rss/delete/many

批量删除多个 RSS 订阅源。

更新订阅源

PATCH /rss/update/{rss_id}

更新 RSS 订阅源的配置。

刷新订阅源

GET /rss/refresh/all

手动触发刷新所有 RSS 订阅源。

GET /rss/refresh/{rss_id}

刷新特定的 RSS 订阅源。

获取订阅源中的种子

GET /rss/torrent/{rss_id}

获取从特定 RSS 订阅源解析的种子列表。

分析与订阅

POST /rss/analysis

分析 RSS URL 并提取动画元数据,但不订阅。

请求体:

json
{
  "url": "string"
}
POST /rss/collect

从 RSS 订阅源下载所有剧集(用于已完结动画)。

POST /rss/subscribe

订阅 RSS 订阅源以自动下载连载中的动画。


搜索

搜索番剧(Server-Sent Events)

GET /search/bangumi?keyword={keyword}&provider={provider}

搜索动画种子。以 Server-Sent Events (SSE) 流的形式返回结果,提供实时更新。

查询参数:

  • keyword — 搜索关键词
  • provider — 搜索提供者(例如 mikannyaadmhy

响应: 包含解析后搜索结果的 SSE 流。

列出搜索提供者

GET /search/provider

获取可用搜索提供者的列表。


程序控制

获取状态

GET /status

获取程序状态,包括版本、运行状态和 first_run 标志。

响应:

json
{
  "status": "running",
  "version": "3.2.0",
  "first_run": false
}

启动程序

GET /start

启动主程序(RSS 检查、下载、重命名)。

重启程序

GET /restart

重启主程序。

停止程序

GET /stop

停止主程序(WebUI 仍可访问)。

关闭

GET /shutdown

关闭整个应用程序(重启 Docker 容器)。

检查下载器

GET /check/downloader

测试与已配置的下载器(qBittorrent)的连接。


下载器管理 v3.2+

直接从 AutoBangumi 管理下载器中的种子。

列出种子

GET /downloader/torrents

获取 Bangumi 分类中的所有种子。

暂停种子

POST /downloader/torrents/pause

通过哈希暂停种子。

请求体:

json
{
  "hashes": ["hash1", "hash2"]
}

恢复种子

POST /downloader/torrents/resume

通过哈希恢复已暂停的种子。

请求体:

json
{
  "hashes": ["hash1", "hash2"]
}

删除种子

POST /downloader/torrents/delete

删除种子,可选择是否删除文件。

请求体:

json
{
  "hashes": ["hash1", "hash2"],
  "delete_files": false
}

设置向导 v3.2+

这些端点仅在首次运行设置期间可用(设置完成前)。它们需要认证。设置完成后,所有端点返回 403 Forbidden

检查设置状态

GET /setup/status

检查是否需要设置向导(首次运行)。

响应:

json
{
  "need_setup": true
}

测试下载器连接

POST /setup/test-downloader

使用提供的凭据测试与下载器的连接。

请求体:

json
{
  "type": "qbittorrent",
  "host": "172.17.0.1:8080",
  "username": "admin",
  "password": "adminadmin",
  "ssl": false
}

测试 RSS 订阅源

POST /setup/test-rss

验证 RSS 订阅源 URL 是否可访问和可解析。

请求体:

json
{
  "url": "https://mikanime.tv/RSS/MyBangumi?token=xxx"
}

测试通知

POST /setup/test-notification

使用提供的设置发送测试通知。

请求体:

json
{
  "type": "telegram",
  "token": "bot_token",
  "chat_id": "chat_id"
}

完成设置

POST /setup/complete

保存所有配置并将设置标记为完成。创建标记文件 config/.setup_complete

请求体: 完整配置对象。


日志

获取日志

GET /log

获取完整的应用程序日志文件。

清除日志

GET /log/clear

清除日志文件。


响应格式

所有 API 响应遵循统一格式:

json
{
  "msg_en": "Success message in English",
  "msg_zh": "成功消息(中文)",
  "status": true
}

错误响应包含适当的 HTTP 状态码(400、401、403、404、500)以及中英文错误消息。

AutoBangumi 基于 MIT 许可证发布。(最新版本: v3.2)