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使用用户名和密码进行认证。
请求体:
{
"username": "string",
"password": "string"
}响应: 设置包含 JWT 令牌的认证 cookie。
刷新令牌
GET /auth/refresh_token刷新当前的认证令牌。
登出
GET /auth/logout清除认证 cookie 并登出。
更新凭据
POST /auth/update更新用户名和/或密码。
请求体:
{
"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获取当前应用程序配置。
响应: 完整配置对象,包括 program、downloader、rss_parser、bangumi_manager、notification、proxy 和 experimental_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/批量删除多个动画规则。
请求体:
{
"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 订阅源。
请求体:
{
"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 并提取动画元数据,但不订阅。
请求体:
{
"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— 搜索提供者(例如mikan、nyaa、dmhy)
响应: 包含解析后搜索结果的 SSE 流。
列出搜索提供者
GET /search/provider获取可用搜索提供者的列表。
程序控制
获取状态
GET /status获取程序状态,包括版本、运行状态和 first_run 标志。
响应:
{
"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通过哈希暂停种子。
请求体:
{
"hashes": ["hash1", "hash2"]
}恢复种子
POST /downloader/torrents/resume通过哈希恢复已暂停的种子。
请求体:
{
"hashes": ["hash1", "hash2"]
}删除种子
POST /downloader/torrents/delete删除种子,可选择是否删除文件。
请求体:
{
"hashes": ["hash1", "hash2"],
"delete_files": false
}设置向导 v3.2+
这些端点仅在首次运行设置期间可用(设置完成前)。它们不需要认证。设置完成后,所有端点返回 403 Forbidden。
检查设置状态
GET /setup/status检查是否需要设置向导(首次运行)。
响应:
{
"need_setup": true
}测试下载器连接
POST /setup/test-downloader使用提供的凭据测试与下载器的连接。
请求体:
{
"type": "qbittorrent",
"host": "172.17.0.1:8080",
"username": "admin",
"password": "adminadmin",
"ssl": false
}测试 RSS 订阅源
POST /setup/test-rss验证 RSS 订阅源 URL 是否可访问和可解析。
请求体:
{
"url": "https://mikanime.tv/RSS/MyBangumi?token=xxx"
}测试通知
POST /setup/test-notification使用提供的设置发送测试通知。
请求体:
{
"type": "telegram",
"token": "bot_token",
"chat_id": "chat_id"
}完成设置
POST /setup/complete保存所有配置并将设置标记为完成。创建标记文件 config/.setup_complete。
请求体: 完整配置对象。
日志
获取日志
GET /log获取完整的应用程序日志文件。
清除日志
GET /log/clear清除日志文件。
响应格式
所有 API 响应遵循统一格式:
{
"msg_en": "Success message in English",
"msg_zh": "成功消息(中文)",
"status": true
}错误响应包含适当的 HTTP 状态码(400、401、403、404、500)以及中英文错误消息。