/ ディレクトリ / プレイグラウンド / media-library-organizer-skill
● コミュニティ Innei ⚡ 即起動

media-library-organizer-skill

作者 Innei · Innei/media-library-organizer-skill

Jellyfin/Plex/Emby向けにメディアライブラリを整備します。不要ファイルの削除、散在するエピソードの統合、フォルダ名の正規化、TMDBとの照合による欠落チェックを行います。

メディアサーバー向けに映画・テレビ・アニメのライブラリを体系的に整理するClaude Codeスキル(スタンドアロンのbashスクリプト付き)です。ディレクトリをスキャンし、不要ファイル(.DS_Store、SMB残留ファイル、空ディレクトリ)を削除し、タイトル+年+品質に基づいて重複を統合し、散在するリリースグループのフォルダをまとめ、Title (Year) 形式に正規化し、TMDBと照合して欠落エピソードを検出します。段階的な安全設計:明らかな不要ファイルの削除のみ自動実行され、重要な変更はユーザーの承認を待ちます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

media-library-organizer-skill.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "media-library-organizer-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Innei/media-library-organizer-skill",
        "~/.claude/skills/media-library-organizer-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "media-library-organizer-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Innei/media-library-organizer-skill",
        "~/.claude/skills/media-library-organizer-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "media-library-organizer-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Innei/media-library-organizer-skill",
        "~/.claude/skills/media-library-organizer-skill"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "media-library-organizer-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Innei/media-library-organizer-skill",
        "~/.claude/skills/media-library-organizer-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "media-library-organizer-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Innei/media-library-organizer-skill",
        "~/.claude/skills/media-library-organizer-skill"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "media-library-organizer-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/Innei/media-library-organizer-skill",
          "~/.claude/skills/media-library-organizer-skill"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add media-library-organizer-skill -- git clone https://github.com/Innei/media-library-organizer-skill ~/.claude/skills/media-library-organizer-skill

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: media-library-organizer-skill

散らかったダウンロードライブラリをJellyfin向けに整備する

👤 混沌としたダウンロードフォルダを抱えるホームメディアサーバーユーザー ⏱ ~60 min intermediate

使うタイミング: リリースグループ名で散らかったフォルダをJellyfinに読み込ませる前に使用します。

前提条件
  • スキルのインストール — git clone https://github.com/Innei/media-library-organizer-skill ~/.claude/skills/media-library-organizer-skill
  • 完全性チェック用のTMDB APIキー — themoviedb.org -> Settings -> API -> free key
フロー
  1. スキャンと分析
    Use media-library-organizer on /media/downloads. Scan-only — list junk, duplicates, scattered episodes.✓ コピーしました
    → 不要ファイル / 重複 / 散在の3セクションで構成されたレポート
  2. 不要ファイルの自動削除(安全ティア)
    Proceed with junk cleanup (.DS_Store, SMB metadata, empty dirs).✓ コピーしました
    → 小規模な削除のみ、リスクのある操作なし
  3. 重複の確認と統合
    Now consolidate duplicates — I'll approve each.✓ コピーしました
    → タイトル/年/品質を表示しながら1件ずつ承認
  4. フォルダ名の正規化
    Rename to Title (Year) format — warn if anything is currently seeding.✓ コピーしました
    → リネーム前にシード警告が表示される
  5. TMDBによる検証
    Cross-check episode counts against TMDB — list missing.✓ コピーしました
    → 作品ごとの欠落エピソード一覧

結果: Jellyfin/Plexがすべてのメディアを認識し、欠落箇所が明確になります。

注意点
  • リネームによりアクティブなトレントシードが壊れる — スキルが警告を出します。リネーム前にトレントを停止するか、ハードリンクを作成してください
  • 異なる品質のバージョンを統合すると高品質版を失う可能性がある — スキルは高品質を優先しますが、確認前に必ずダブルチェックしてください
組み合わせ: filesystem

複数リリースグループが混在するアニメライブラリを整理する

👤 アニメコレクター ⏱ ~45 min intermediate

使うタイミング: アニメライブラリに1作品あたり3つのリリースグループが異なるフォルダに散在している場合に使用します。

フロー
  1. スキャン
    Scan /anime for scattered-episode patterns across release groups.✓ コピーしました
    → 作品ごとの統合候補
  2. 作品ごとに正規バージョンを選択
    For each candidate, pick the highest-quality release group and merge others into it (or trash).✓ コピーしました
    → 整理された作品別フォルダ

結果: 1作品につき1フォルダ、統一された命名規則で整理されます。

組み合わせ

他のMCPと組み合わせて10倍の力を

media-library-organizer-skill + filesystem

同じセッション内でNFOファイルやカスタムサイドカーファイルを編集する

While organizing, also add .nfo files for each movie with TMDB id.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
scan root path 整理セッションの開始時 0 — local
clean_junk root path, safe_only=true 最初の破壊的パス 0
merge_duplicates duplicate pair list 重複の承認後 0
normalize_names root path クリーンアップ完了後 0
verify_tmdb show paths, TMDB_API_KEY 完全性チェック時 TMDB free quota

コストと制限

運用コスト

APIクォータ
TMDB:ホームライブラリ用途には十分な無料枠があります
呼び出しあたりのトークン
低 — スキルは主にシェル操作のオーケストレーションを行います
金額
無料
ヒント
まずスキャンのみ実行してください。クリーンアップを決定するまで、完全な分析にトークンを消費する必要はありません

セキュリティ

権限、シークレット、影響範囲

最小スコープ: Filesystem read/write on the library root only
認証情報の保管: TMDBキーは環境変数に保存
データ送信先: 完全性チェック用のTMDB API(公開メタデータのみ)
絶対に付与しない: Run as root on the media disk — use a user with write on just the library

トラブルシューティング

よくあるエラーと対処法

すべてが「junk」として検出される

メディア以外のフォルダを指定している可能性があります。ルートパスを確認してください

確認: ls /media/downloads
TMDB verifyが401を返す

TMDB_API_KEYが未設定または誤っています

確認: curl https://api.themoviedb.org/3/movie/550?api_key=$TMDB_API_KEY
リネーム後もJellyfinが検出しない

ライブラリの再スキャンを強制実行し、フォルダ名がJellyfinの期待する命名規則と一致しているか確認してください

代替案

media-library-organizer-skill 他との比較

代替案代わりに使う場面トレードオフ
FileBotGUIと組み込みルールを使いたい場合有料、Claudeとの連携なし
tinyMediaManager不要ファイル削除よりもメタデータ管理を重視する場合統合・散在エピソード処理の機能なし

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る