REST APIリファレンス
AutoBangumiは/api/v1でREST APIを公開しています。すべてのエンドポイント(ログインとセットアップを除く)はJWT認証が必要です。
ベースURL: http://your-host:7892/api/v1
認証: JWTトークンをCookieまたはAuthorization: Bearer <token>ヘッダーとして含めてください。
インタラクティブドキュメント: 開発モードで実行している場合、Swagger UIはhttp://your-host:7892/docsで利用可能です。
認証
ログイン
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 Passkeysを使用したパスワードレス認証。
Passkeyの登録
POST /passkey/register/optionsWebAuthn登録オプション(チャレンジ、リライングパーティ情報)を取得します。
POST /passkey/register/verifyブラウザからのPasskey登録レスポンスを検証して保存します。
Passkeyで認証
POST /passkey/auth/optionsWebAuthn認証チャレンジオプションを取得します。
POST /passkey/auth/verifyPasskey認証レスポンスを検証し、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/calendarBangumi.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/analysisRSS URLを分析し、購読せずにアニメのメタデータを抽出します。
リクエストボディ:
{
"url": "string"
}POST /rss/collectRSSフィードからすべてのエピソードをダウンロードします(完結したアニメ用)。
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/torrentsBangumiカテゴリ内のすべてのトレントを取得します。
トレントの一時停止
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-rssRSS 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": "Success message in Chinese",
"status": true
}エラーレスポンスには、両方の言語でのエラーメッセージとともに適切なHTTPステータスコード(400、401、403、404、500)が含まれます。