Shaka Packager MCP Server

MIT License
  • Apple

Integrations

  • Enables packaging videos for DASH streaming format with support for VOD and live streaming configurations.

  • Works with Docker containers for file access, featuring intelligent path handling that automatically translates paths between Docker and host environments.

Shaka パッケージャー MCP サーバー

⚠️ 実験段階の免責事項

このプロジェクトはまだ初期アルファ段階であり、非常に実験的なものです。本番環境での使用は推奨されません。また、かなり乱雑になる可能性があります。

現在の制限:

  • 一貫性のない行動に遭遇する可能性がある
  • 高度な機能(パッケージ化、変換など)は現在も開発中です
  • Dockerとホスト環境間のパス変換には手動設定が必要な場合があります
  • 頻繁に重大な変更が発生し、不安定になる可能性がある

プロジェクトの改善に役立てるため、発生した問題を報告してください。

ビデオのトランスコーディング、パッケージ化、分析のためにShaka Packagerと Claude AI アプリケーションを統合する MCP (Model Context Protocol) サーバー。

このサーバーはファイルシステム MCP サーバーと連携して動作し、Claude Desktop がコンピューター上のビデオ ファイルにアクセスして処理できるようにすることで、Claude をメディア処理タスクの強力なアシスタントに変えます。

特徴

  • ビデオ分析: ビデオファイルを分析して、詳細なストリーム情報、コーデック、ビットレートなどを抽出します。
  • メディアパッケージング: VODとライブストリーミングをサポートするHLSおよびDASH形式でのストリーミング用にビデオを変換します
  • 詳細オプション:
    • DRM 暗号化を適用する (Widevine、PlayReady、FairPlay)
    • 広告挿入マーカーを設定する
    • 形式間の変換(MP4、TSなど)
  • インテリジェントなパス処理: Dockerとホスト環境間のパスを自動的に変換します
  • 堅牢なエラー管理: 解決策の提案とともに意味のあるエラー分析を提供します
  • コマンドアシスタンス: 最適な結果を得るために Shaka Packager コマンドを正しくフォーマットするのに役立ちます
  • インタラクティブなドキュメント: 複雑な操作をユーザーに示すヘルプと例が組み込まれています
  • 詳細な出力: すべての操作の包括的な概要と実行の詳細

前提条件

  • Python 3.10以上
  • Shaka Packager がインストールされ、PATH で利用可能
  • MCP 互換クライアント (Claude Desktop など)

インストール

pip または uv の使用(近日公開)

pip を使用してパッケージをインストールします。

pip install shaka-packager-mcp

またはUVの場合:

uv pip install shaka-packager-mcp

ソースから(推奨)

git clone https://github.com/coderjun/shaka-packager-mcp.git cd shaka-packager-mcp pip install -e .

またはUVの場合:

git clone https://github.com/coderjun/shaka-packager-mcp.git cd shaka-packager-mcp uv pip install -e .

クロードデスクトップ統合

Claude Desktop はビデオ ファイルのアップロードを直接サポートしていないため、2 つのサーバーを使用するアプローチを使用します。

  1. コンピュータ上のビデオファイルにアクセスするための簡素化されたファイルシステムMCPサーバー
  2. Shaka Packager MCPサーバーはこれらのビデオを分析して処理します

ステップ1: MCPファイルシステムサーバーをセットアップする

公式の MCP ファイルシステム サーバーを使用して、Claude がビデオ ファイルにアクセスできるようにします。

  1. Docker を使用して公式ファイルシステム サーバーをインストールします。
    docker pull mcp/filesystem
  2. あるいは、ファイルシステムMCPサーバーリポジトリの指示に従ってソースからビルドすることもできます。

ステップ2: 構成ファイルを見つける

Claude Desktop 構成ファイルを見つけます。

  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows : %APPDATA%\Claude\claude_desktop_config.json

ファイルが存在しない場合は作成します。

ステップ3: 両方のサーバーを構成に追加する

絶対パスを使用するように注意しながら、次の構成を追加します。

{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "--mount", "type=bind,src=/PATH/TO/VIDEOS/DIRECTORY,dst=/projects/video-drop", "mcp/filesystem", "/projects" ] }, "shaka-packager": { "command": "/ABSOLUTE/PATH/TO/uv", "args": [ "run", "--with", "mcp[cli]", "/ABSOLUTE/PATH/TO/shaka_packager_mcp.py" ], "env": { "VIDEO_PATH": "/PATH/TO/VIDEOS/DIRECTORY", "SHAKA_PACKAGER_PATH": "/PATH/TO/PACKAGER" } } } }

交換する:

  • /PATH/TO/VIDEOS/DIRECTORYビデオファイルを含むディレクトリへのパスです
  • /ABSOLUTE/PATH/TO/uv uv 実行ファイルへのフルパスで置き換えます
  • /ABSOLUTE/PATH/TO/shaka_packager_mcp.py (スクリプトファイルへのフルパス)
  • /PATH/TO/PACKAGERは Shaka Packager 実行ファイルへのフルパスです

例えば:

{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "--mount", "type=bind,src=/Users/username/Videos,dst=/projects/video-drop", "mcp/filesystem", "/projects" ] }, "shaka-packager": { "command": "/Users/username/.local/bin/uv", "args": [ "run", "--with", "mcp[cli]", "/Users/username/Development/shaka-packager-mcp/shaka_packager_mcp.py" ], "env": { "VIDEO_PATH": "/Users/username/Videos", "SHAKA_PACKAGER_PATH": "/Users/username/.shaka/packager" } } } }

ステップ4: Claude Desktopを再起動する

設定ファイルを編集した後、変更を適用するには Claude Desktop を再起動します。

2サーバーアプローチの使用方法

  1. まず、簡略化されたファイルシステム サーバーを使用してビデオ ファイルを参照します。
    • クロードに「ビデオディレクトリ内のファイルを一覧表示する」ように依頼します。
    • 分析または処理したいビデオファイルに移動します
  2. ビデオ ファイルが見つかったら、Shaka Packager ツールでそのパスを使用します。
    • 分析の場合: 「このビデオを分析してください: /Users/username/Videos/example.mp4」
    • 処理の場合: 「このビデオを HLS 用にパッケージ化してください: /Users/username/Videos/example.mp4」

トラブルシューティング

問題が発生した場合:

  1. 両方のサーバーが絶対パスで正しく設定されていることを確認してください
  2. Shaka Packagerがインストールされ、アクセス可能であることを確認する
  3. ファイルシステムサーバーに指定されたディレクトリが存在し、ビデオが含まれていることを確認します。
  4. 次の場所で Claude Desktop ログのエラーを確認してください:
    • macOS: ~/Library/Logs/Claude/mcp*.log
    • Windows: %APPDATA%\Claude\logs\mcp*.log

使用法

Claude Desktop で Filesystem MCP サーバーと Shaka Packager MCP サーバーの両方が実行されたら、次の操作を行います。

  1. ビデオファイルにアクセスします:
    Please show me the files in my Videos directory
  2. ビデオファイルに移動します:
    Please show me the files in the Movies subdirectory
  3. 処理したいビデオのfile:// URIパスをコピーします
  4. ファイル パスを指定して Shaka Packager ツールを使用します
    Please analyze this video: file:///Users/username/Videos/my_video.mp4
    または
    Please package this video for HLS and DASH streaming: file:///Users/username/Videos/my_video.mp4
  5. サーバーは適切なShaka Packagerコマンドを実行し、結果の詳細な概要を提供します。

ビデオ ファイルの正確な場所がわかっている場合は、直接ファイル パスを使用することもできます。

Please analyze this video: /Users/username/Videos/my_video.mp4

ツール

サーバーは次のツールを提供します:

  1. analyze_video : ビデオファイルを調べ、インテリジェントなエラー処理で詳細なストリーム情報を提供します。
  2. run_shaka_packager : カスタム引数と適切なパス処理を使用して、任意の Shaka Packager コマンドを実行します。
  3. get_shaka_options : 利用可能なコマンドオプションとバージョン情報を取得します
  4. get_shaka_documentation : Shaka Packager の使用に関する包括的なドキュメントと例を提供します

プロンプト

サーバーには次のプロンプト テンプレートが含まれています。

  • MP4からTSへの変換
  • HLSとDASHでのVODパッケージング
  • ライブストリーミングパッケージ
  • コンテンツの暗号化
  • 広告掲載準備
  • ビデオ分析
  • コマンド形式のリマインダー
  • エラー解釈ガイダンス

構成

サーバーは環境変数を使用して設定できます。

  • SHAKA_PACKAGER_PATH : Shaka Packager 実行ファイルへのパス (Claude Desktop の場合は強く推奨)
  • VIDEO_PATH : ローカルビデオディレクトリへのパス(Dockerとホスト間のパスの変換に使用されます)
  • DOCKER_PATH : Dockerコンテナのマウントパス(デフォルト: "/projects/video-drop")
  • TEMP_DIR : ファイルアップロード用のカスタム一時ディレクトリ
  • LOG_LEVEL : ログレベル (DEBUG、INFO、WARNING、ERROR、CRITICAL)
  • COMMAND_TIMEOUT : Shaka Packager コマンドのタイムアウト(秒)(デフォルト: 300)

これらは次の場所で設定できます:

  1. Claude Desktop 構成ファイル ( SHAKA_PACKAGER_PATHおよびVIDEO_PATHに推奨)
  2. 環境変数
  3. スクリプトと同じディレクトリにある.envファイル

.envファイルの例:

SHAKA_PACKAGER_PATH=/usr/local/bin/packager VIDEO_PATH=/Users/yourusername/Videos LOG_LEVEL=DEBUG

発達

開発環境の構築

# Clone the repository git clone https://github.com/coderjun/shaka-packager-mcp.git cd shaka-packager-mcp # Install development dependencies with pip pip install -e ".[dev]" # Or with uv uv pip install -e ".[dev]"

テストの実行

pytest

コードのフォーマット

black . isort .

コード構造を理解する

Shaka Packager MCP サーバーの主なコンポーネントは次のとおりです。

  • shaka_packager_mcp.py : MCP ツールとプロンプトを備えたメインサーバーの実装
  • tests/ : 機能検証用のテストスイート

このサーバーは、ビデオ ファイルにアクセスするために公式の MCP ファイルシステム サーバーと連携するように設計されています。

実装の主な特徴

  • 堅牢なパス処理: Dockerとホスト環境間のパスを自動的に変換します
  • スマートなエラー処理: 意味のあるエラーメッセージと提案を提供します
  • コマンド構文アシスタンス: Shaka Packager コマンドの正しい書式設定をサポートします
  • ドキュメントの統合: 包括的なドキュメントと例を提供します

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

ヘルプの取得

AI コード副操縦士を自由に使用してください。著者も使用しています。

問題が発生した場合や質問がある場合は、次の手順に従ってください。

  1. このREADMEのトラブルシューティングセクションを確認してください
  2. Shaka Packagerのドキュメントを確認する
  3. Claude内で対話型ヘルプを表示するには、 get_shaka_documentationツールを使用します。
  4. GitHubで問題を開く

謝辞

-
security - not tested
A
license - permissive license
-
quality - not tested

Shaka Packager を Claude AI アプリケーションと統合する MCP サーバー。これにより、Claude は HLS や DASH などの形式でストリーミングするためにビデオ ファイルを分析、トランスコード、パッケージ化できるようになります。

  1. Features
    1. Prerequisites
      1. Installation
        1. Using pip or uv (coming soon)
        2. From source (recommended)
      2. Claude Desktop Integration
        1. Step 1: Set Up the MCP Filesystem Server
        2. Step 2: Find the Configuration File
        3. Step 3: Add Both Servers to the Configuration
        4. Step 4: Restart Claude Desktop
        5. How to Use the Two-Server Approach
        6. Troubleshooting
      3. Usage
        1. Tools
          1. Prompts
            1. Configuration
              1. Development
                1. Setting up a development environment
                2. Running tests
                3. Code formatting
                4. Understanding the Code Structure
                5. Key Features in the Implementation
              2. License
                1. Getting Help
                  1. Acknowledgements
                    ID: yv2w1gw49q