# プラグイン設定 4.0 から、ダウンローダー、リネーム、通知チャンネル、検索サイトなどの機能はプラグインの拡張ポイントを通じて接続されます。プラグインの有効/無効、設定、Provider の選択は `config.json` の `plugins` セクションに保存されます。 ## WebUI **設定 → プラグイン** でプラグインを管理します。 ![プラグイン設定](/image/en/config/plugins.png) - **未署名プラグインを許可**:ローカルディレクトリ(`config/plugins/local/`)と pip でインストールしたプラグインは署名されていません。オンにしたときだけ読み込まれます。プラグインは AutoBangumi と同じプロセスで完全な権限を持って動作します。信頼できるプラグインだけを有効にしてください。 - **有効**:各プラグインカードのスイッチです。 - **設定**:カードを開き、プラグインが宣言したフォームに入力して **設定を保存** をクリックします。 この 3 つは保存するとすぐに反映されます。**保存して再起動** をクリックする必要はありません。 プラグインカードには、ソース(内蔵、ローカル、pip)、状態(実行中、無効、エラー)、宣言された権限が表示されます。読み込みに失敗したプラグインや、連続 5 回失敗して自動で無効になったプラグインは、カードに理由が表示されます。そのプラグインの設定を変更すると、再度読み込みを試みます。 次の設定はプラグインページではなく、各機能の設定セクションにあり、全体の設定と一緒に保存されます(**保存して再起動**)。 - ダウンローダーインスタンスと既定のダウンローダー:[ダウンローダー設定](/ja/config/downloader#複数のダウンローダー) - リネーム方式とリビジョン競合ポリシー:[アニメ管理設定](/ja/config/manager) ## 内蔵プラグイン | id | 既定 | 機能 | 詳細 | | --- | --- | --- | --- | | `rename` | 有効 | リネーム方式 `pn`、`advance`、`template` | [アニメ管理設定](/ja/config/manager#テンプレートリネーム) | | `ingest-filters` | 有効 | 包含フィルター:正規表現(大文字小文字を区別しない)を設定すると、いずれかに一致する名前のトレントだけをダウンロードします。空欄ならフィルターしません。すべての購読に適用されます | 下記参照 | | `media-server-refresh` | 有効 | 整理完了後に Jellyfin / Emby / Plex を更新します。サーバーアドレスと API Key が未入力なら何もしません | [アニメ管理設定](/ja/config/manager#メディアサーバーの更新) | | `hardlink` | 無効 | 整理済みファイルをメディアライブラリにハードリンクします | [アニメ管理設定](/ja/config/manager#メディアライブラリへのハードリンク) | `ingest-filters` の包含フィルター(`include`)は、ルールの除外フィルターを補います。不正な正規表現は文字どおりに照合されます。 プラグインの開発は [プラグイン開発](/ja/dev/plugins) を参照してください。 ## `config.json` セクション:`plugins` | キー | 説明 | 型 | WebUI項目 | 既定値 | | --- | --- | --- | --- | --- | | `allow_unsigned` | 未署名(ローカルディレクトリ、pip)のプラグインを読み込む | 真偽値 | 未署名プラグインを許可 | `false` | | `dev_mode` | ローカルプラグインのファイル変更時に自動で再読み込み | 真偽値 | 設定ファイルのみ | `false` | | `enabled` | プラグイン id ごとの有効スイッチ | オブジェクト | プラグインカードの有効スイッチ | `{}` | | `options` | プラグイン id ごとの設定 | オブジェクト | プラグインカードの設定 | `{}` | | `hook_order` | 拡張ポイントごとのフック実行順 | オブジェクト | 設定ファイルのみ | `{}` | | `slots` | 各拡張ポイントで選ぶ Provider | オブジェクト | 下表参照 | 下表参照 | | `instances` | 複数インスタンスの拡張ポイントのインスタンス一覧(現在はダウンローダーのみ) | 配列 | ダウンローダー設定 | id が `default` の qBittorrent インスタンス 1 つ | - `enabled` にないプラグイン:内蔵プラグインはマニフェストに従います(`hardlink` 以外は有効)。それ以外のソースのプラグインは無効です。 - `options` の値はプラグインの設定モデルの検証に合格する必要があります。WebUI で保存するとき、不正な設定は拒否されます。パスワード系の項目は API の応答でマスクされます。 - `hook_order` のキーはフック拡張ポイント(`torrent.filter`、`title.parsed`、`torrent.adding`、`http.request`、`message_template`)、値はプラグイン id のリストです。リストにあるプラグインがその順で最初に実行され、残りは優先度、次にプラグイン id の順です。 ### `slots` | キー | 説明 | WebUI項目 | 既定値 | | --- | --- | --- | --- | | `downloader` | 既定のダウンローダーインスタンス id。`instances` 内のダウンローダーインスタンスである必要があります | ダウンローダー設定の **既定に設定** | `default` | | `rename_strategy` | リネーム方式:`none`(ホスト内蔵)、`pn`・`advance`・`template`(内蔵プラグイン `rename`)、または他のプラグインの方式 | アニメ管理設定のリネーム方式 | `pn` | | `conflict_policy` | より高いリビジョンが既存の話数を対象にするとき:`hold` は既存ファイルを保持、`replace` は高いリビジョンに置き換え | アニメ管理設定のリビジョン競合ポリシー | `hold` | | `media_files` | トレント内のファイルが本編か字幕かを判定する実装。ホスト内蔵の実装は拡張子で判定します | 設定ファイルのみ | `default` | 選んだ Provider が登録されていない場合(提供するプラグインが無効、または失敗で停止された場合など)、`rename_strategy` は `none` として扱われ、`conflict_policy` と `media_files` はホスト内蔵の実装を使います。 ### `instances` ```json "instances": [ { "id": "default", "point": "downloader", "provider": "qbittorrent", "options": { "host": "172.17.0.1:8080", "username": "admin", "password": "adminadmin", "path": "/downloads/Bangumi", "ssl": false } } ] ``` | キー | 説明 | | --- | --- | | `id` | インスタンス id。重複できません | | `point` | 拡張ポイント。現在は `downloader` のみ | | `provider` | 拡張ポイントを実装する Provider id。例:`qbittorrent`、`aria2`、プラグインのダウンローダー | | `options` | インスタンスの設定。ダウンローダーの項目は [ダウンローダー設定](/ja/config/downloader#config-json) を参照 | ## 3.3 からのアップグレード 4.0 へのアップグレード後の初回起動時に、3.3 の設定が `plugins` セクションへ移行されます。 - `downloader` → `plugins.instances` の id が `default` のダウンローダーインスタンス。`plugins.slots.downloader` は `default` になります。 - `bangumi_manage.rename_method` → `plugins.slots.rename_strategy`(廃止された `normal` は `none` になります)。 - `bangumi_manage.revision_conflict_policy` → `plugins.slots.conflict_policy`。 移行前に元のファイルは `config.json.v3.bak` にバックアップされます。既存のバックアップは上書きせず、`config.json.v3.bak.1`、`config.json.v3.bak.2` などを使います。移行に失敗した場合(移行後の設定が検証に通らない場合など)、バックアップから元のファイルを復元して**起動を中止**し、失敗した項目をログに記録します。その項目を修正してから再起動してください。