py-mcp-youtube-ツールボックス



動画検索、トランスクリプト抽出、コメント取得など、YouTube を操作するための強力なツールを AI アシスタントに提供する MCP サーバー。
概要
py-mcp-youtube-toolbox は、次の YouTube 関連の機能を提供します。
- 高度なフィルタリングオプションでYouTube動画を検索
- 動画やチャンネルの詳細情報を取得する
- 並べ替えオプションを使用して動画コメントを取得する
- 複数の言語でビデオのトランスクリプトとキャプションを抽出します
- 特定の動画に関連する動画を検索する
- 地域別にトレンド動画をチェック
- トランスクリプトに基づいてビデオコンテンツの要約を生成する
- フィルタリング、検索、マルチビデオ機能を備えた高度なトランスクリプト分析
目次
前提条件
- Python : Python 3.12以降をインストールします
- YouTube APIキー:
- Google Cloud Consoleに移動
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択してください
- YouTube Data API v3 を有効にします。
- 「APIとサービス」>「ライブラリ」に移動します
- 「YouTube Data API v3」を検索して有効にします
- 資格情報を作成します:
- 「APIとサービス」>「認証情報」に移動します
- 「認証情報を作成」>「APIキー」をクリックします
- APIキーを書き留めてください
インストール
Gitクローン
git clone https://github.com/jikime/py-mcp-youtube-toolbox.git
cd py-mcp-youtube-toolbox
構成
- UV パッケージ マネージャーをインストールします。
curl -LsSf https://astral.sh/uv/install.sh | sh
- 仮想環境を作成してアクティブ化します。
uv venv -p 3.12
source .venv/bin/activate # On MacOS/Linux
# or
.venv\Scripts\activate # On Windows
- 依存関係をインストールします:
uv pip install -r requirements.txt
- 環境変数:
cp env.example .env
vi .env
# Update with your YouTube API key
YOUTUBE_API_KEY=your_youtube_api_key
Dockerの使用
- Docker イメージをビルドします。
docker build -t py-mcp-youtube-toolbox .
- コンテナを実行します。
docker run -e YOUTUBE_API_KEY=your_youtube_api_key py-mcp-youtube-toolbox
ローカルの使用
- サーバーを実行します。
- MCP インスペクターを実行します。
MCP設定を構成する
MCP 設定ファイルにサーバー構成を追加します。
クロードデスクトップアプリ
- Smithery経由で自動的にインストールするには:
npx -y @smithery/cli install @jikime/py-mcp-youtube-toolbox --client claude
- 手動でインストールするには
~/Library/Application Support/Claude/claude_desktop_config.json
を開きます。
これをmcpServers
オブジェクトに追加します。
{
"mcpServers": {
"YouTube Toolbox": {
"command": "/path/to/bin/uv",
"args": [
"--directory",
"/path/to/py-mcp-youtube-toolbox",
"run",
"server.py"
],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key"
}
}
}
}
カーソルIDE
~/.cursor/mcp.json
を開く
これをmcpServers
オブジェクトに追加します。
{
"mcpServers": {
"YouTube Toolbox": {
"command": "/path/to/bin/uv",
"args": [
"--directory",
"/path/to/py-mcp-youtube-toolbox",
"run",
"server.py"
],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key"
}
}
}
}
Docker用
{
"mcpServers": {
"YouTube Toolbox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "YOUTUBE_API_KEY=your_youtube_api_key",
"py-mcp-youtube-toolbox"
]
}
}
}
ツールドキュメント
ビデオツール
search_videos
: 高度なフィルタリング オプション (チャンネル、再生時間、地域など) を使用して YouTube 動画を検索します。get_video_details
: 特定の YouTube 動画の詳細情報 (タイトル、チャンネル、視聴回数、高評価など) を取得します。get_video_comments
: 並べ替えオプションを使用して YouTube 動画からコメントを取得しますget_related_videos
: 特定の YouTube 動画に関連する動画を検索するget_trending_videos
: YouTube で地域別にトレンドの動画を取得する
チャンネルツール
get_channel_details
: YouTube チャンネルの詳細情報 (名前、登録者数、視聴回数など) を取得します。
トランスクリプトツール
get_video_transcript
: 指定された言語の YouTube 動画からトランスクリプト/キャプションを抽出しますget_video_enhanced_transcript
: フィルタリング、検索、マルチビデオ機能を備えた高度なトランスクリプト抽出
プロンプトツール
transcript_summary
: カスタマイズ可能なオプションを使用して、トランスクリプトに基づいて YouTube 動画コンテンツの要約を生成します。
リソースツール
youtube://available-youtube-tools
: 利用可能なすべてのYouTubeツールのリストを取得しますyoutube://video/{video_id}
: 特定の動画の詳細情報を取得しますyoutube://channel/{channel_id}
: 特定のチャンネルに関する情報を取得しますyoutube://transcript/{video_id}?language={language}
: 特定の動画のトランスクリプトを取得します
発達
ローカルテストの場合は、付属のクライアント スクリプトを使用できます。
# Example: Search videos
uv run client.py search_videos query="MCP" max_results=5
# Example: Get video details
uv run client.py get_video_details video_id=zRgAEIoZEVQ
# Example: Get channel details
uv run client.py get_channel_details channel_id=UCRpOIr-NJpK9S483ge20Pgw
# Example: Get video comments
uv run client.py get_video_comments video_id=zRgAEIoZEVQ max_results=10 order=time
# Example: Get video transcript
uv run client.py get_video_transcript video_id=zRgAEIoZEVQ language=ko
# Example: Get related videos
uv run client.py get_related_videos video_id=zRgAEIoZEVQ max_results=5
# Example: Get trending videos
uv run client.py get_trending_videos region_code=ko max_results=10
# Example: Advanced transcript extraction
uv run client.py get_video_enhanced_transcript video_ids=zRgAEIoZEVQ language=ko format=timestamped include_metadata=true start_time=100 end_time=200 query=에이전트 case_sensitive=true segment_method=equal segment_count=2
# Example:
ライセンス
MITライセンス