organize-files について
MoviePilot を使ってメディアを整理するスキルです。識別や重複確認、対象を限定した転送、任意のメタデータ取得を行い、確認済みのメディア情報と転送状態を保ちながらストレージを管理できます。
主な機能
- 01範囲を限定したストレージ確認
- 02メディア分類とタイトル認識
- 03重複と転送履歴の確認
- 04確認済みメディア単位の転送
- 05タグ・カバー・歌詞の任意取得
活用シーン
- 01指定した映画・テレビ番組フォルダーの整理
- 02確認済み音楽アルバムの転送
- 03再整理前の転送状態確認
MCP 対応
MoviePilot API を使い、ストレージ確認、メディア認識、ライブラリ照会、ファイル転送、任意のメタデータ取得を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jxxghp/ moviepilot --skill organize-filesインストール後、Claude Code で/organize-filesを入力して読み込まれたか確認します。
詳細
ファイルの整理
すべての MoviePilot の業務操作には moviepilot_api を使用してください。廃止されたファイル、認識、転送、履歴のツールは利用できません。
ワークフロー
- 対象範囲を確定します。ユーザーがパスを指定した場合は、そのパスを使用します。ダウンローダーのタスクが指定された場合は、
downloader-operationと固定のscripts/mp-downloader.pyヘルパーを使用してインスタンスを特定し、tasks.listを呼び出します。設定済みのルートのみが指定された場合は、storage.settingsを呼び出します。選択したディレクトリを確認するにはstorage.listを使用します。明示的かつ限定された範囲が指定されていない限り、広範な共有ルートを処理しないでください。 - ファイルを映画、テレビ番組、1件の音楽録音、1枚の完全なアルバム、字幕・サイドカー、または無関係なコンテンツに分類します。同じディレクトリにあるというだけの理由で、無関係なメディアをまとめないでください。
- 代表的なタイトルまたはパスを指定して
media.recognizeを呼び出します。確信が持てない場合はmedia.searchを呼び出します。完全一致する候補が複数残る場合は、ask_user_choiceを使用します。ID を推測したり、翻訳したりしないでください。 media_sourceとmedia_idの正確な組み合わせを保持します。テレビ番組の番号が曖昧な場合は、media.detailでシーズンの詳細を確認します。音楽の場合、録音は1トラック、アルバムは複数トラックを含む1つのディレクトリ、アーティストは閲覧のみを対象とします。- 重複のリスクが重要な場合は、
library.existsを呼び出します。既存の転送レコードが再整理に影響する場合は、transfer.historyを確認します。 - 状態を変更する転送の前に、ソース、転送先の識別情報、メディアの種類、シーズンまたは音楽エンティティ、ストレージ、モードを要約します。ユーザーの依頼がその操作を正確に承認している場合、または確認を得た場合にのみ続行します。
- 検証済みの単位ごとに
transfer.fileを1回呼び出します。アルバムの場合は、サポート対象の音声ファイル数が選択したアルバムの詳細と一致することを確認してから、アルバムのディレクトリを1回だけ転送します。 - 要求された場合は、転送の成功後に
media.scrapeを呼び出します。タグ、カバー、歌詞の実際の件数を報告し、歌詞がすべて見つかったと決めつけないでください。
構造化された呼び出し
- ディレクトリ一覧:
bodyにストレージ、パス、ページネーション、ソートを指定してstorage.listを呼び出します。 - 認識:
queryにタイトルまたはパスを指定してmedia.recognizeを呼び出します。 - 検索:
queryにタイトル、種類、ソースの制約を指定してmedia.searchを呼び出します。 - 詳細:
path_params.media_idと識別情報・種類をqueryに指定してmedia.detailを呼び出します。 - ライブラリ確認:正確な識別情報を
queryに指定してlibrary.existsを呼び出します。 - 転送:手動転送リクエストを
bodyに指定してtransfer.fileを呼び出します。 - 実際の転送レスポンスには、バッチが失敗と報告された場合でも
data.itemsが含まれます。各項目のstateを確認してください。acceptedとretry_waitはバックグラウンド処理が残っていることを示します。実行と完了が確認できるのはcompletedのみです。manual_reviewの場合は、先に転送キューでタスクを解決する必要があります。failedとskippedはインポート済みを意味しません。すでにacceptedまたはcompletedの項目が含まれるバッチ全体を再送信しないでください。プレビューのレスポンスは計画用データであり、実行状態は含まれません。 - スクレイプ:
path_params.storage、項目ファイルをbody、正確な識別情報・種類のフィールドをqueryに指定してmedia.scrapeを呼び出します。
ソースが見つからない、ディレクトリ設定がない、識別情報が曖昧なまま、アルバムが混在または未完成と思われる、あるいは指定された転送先が無関係なメディアを上書きする場合は、転送を中止して報告してください。
整理の復旧と履歴コンテキスト
storage.list が返す完全なファイル項目を保持してください。これには、任意の modify_time_ns と change_time_ns も含まれます。ローカルバージョンの認証情報を独自に生成しないでください。復旧処理でソースまたはターゲットのバージョン変更が見つかった場合は、手動レビューの状態を報告し、現状を保持してください。検証を回避するために、バッチ全体を再送信しないでください。
過去の履歴を再利用してテレビ番組を整理する場合は、episode_group を保持してください。異なるエピソードグループは分けて処理してください。
ディレクトリ整理の overwrite_skipped も未インポートを意味します。成功として報告しないでください。