YouTube MCP サーバー
YouTubeデータを操作するためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、標準入出力インターフェースを介してYouTube動画、チャンネル、コメント、トランスクリプトをクエリするためのリソースとツールを提供します。
特徴
- 高度なフィルタリングオプションを使用して YouTube 動画を検索する
- 特定の動画やチャンネルに関する詳細情報を取得する
- 複数の動画の統計情報を比較する
- 地域やカテゴリー別にトレンド動画を探す
- チャンネルのパフォーマンスと動画の統計を分析する
- 動画のコメントとトランスクリプト/キャプションを取得する
- ビデオ分析とトランスクリプトの要約を生成する
前提条件
- Node.js (v16+)
- YouTubeデータAPIキー
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の YouTube MCP サーバーを自動的にインストールするには:
npx -y @smithery/cli install @coyaSONG/youtube-mcp-server --client claude
手動でインストールする
- このリポジトリをクローンします:
git clone https://github.com/coyaSONG/youtube-mcp-server.git
cd youtube-mcp-server
- 依存関係をインストールします:
- ルート ディレクトリに
.env
ファイルを作成します。YOUTUBE_API_KEY=your_youtube_api_key_here
PORT=3000
使用法
構築と実行
- プロジェクトをビルドします。
- サーバーを実行します。
- 開発モードで実行:
- クリーンビルド成果物:
Docker デプロイメント
このプロジェクトには、コンテナ化されたデプロイメント用の Dockerfile が含まれています。
# Build the Docker image
docker build -t youtube-mcp-server .
# Run the container
docker run -p 3000:3000 --env-file .env youtube-mcp-server
APIリファレンス
リソース
youtube://video/{videoId}
- 特定の動画の詳細情報を取得しますyoutube://channel/{channelId}
- 特定のチャンネルに関する情報を取得しますyoutube://transcript/{videoId}
- 特定の動画のトランスクリプトを取得する- オプションのクエリパラメータ:
?language=LANGUAGE_CODE
(例: en
、 ko
、 ja
)
ツール
基本ツール
search-videos
- 高度なフィルタリングオプションを使用して YouTube 動画を検索しますget-video-comments
- 特定の動画のコメントを取得するget-video-transcript
- 特定のビデオのトランスクリプトをオプションの言語で取得するenhanced-transcript
- フィルタリング、検索、マルチビデオ機能を備えた高度なトランスクリプト抽出get-key-moments
- 動画のトランスクリプトからタイムスタンプ付きの重要な瞬間を抽出し、ナビゲーションを容易にしますget-segmented-transcript
- 分析を容易にするためにビデオのトランスクリプトをセグメントに分割します
統計ツール
get-video-stats
- 特定の動画の統計情報を取得するget-channel-stats
- チャンネル登録者数、視聴回数、その他のチャンネル統計情報を取得しますcompare-videos
- 複数の動画の統計情報を比較する
発見ツール
get-trending-videos
- 地域とカテゴリ別にトレンド動画を取得しますget-video-categories
- 特定の地域で利用可能なビデオカテゴリを取得します
分析ツール
analyze-channel-videos
- 特定のチャンネルの動画のパフォーマンス傾向を分析する
プロンプト
video-analysis
- YouTube ビデオの分析を生成しますtranscript-summary
- カスタマイズ可能な長さとキーワード抽出を使用して、トランスクリプトに基づいてビデオの要約を生成しますsegment-by-segment-analysis
- ビデオの各セグメントを分析して、コンテンツの詳細な内訳を提供します
例
ビデオトランスクリプトへのアクセス
youtube://transcript/dQw4w9WgXcQ
特定の言語でのトランスクリプトの取得
youtube://transcript/dQw4w9WgXcQ?language=en
統計ツールの使用
// Get video statistics
{
"type": "tool",
"name": "get-video-stats",
"parameters": {
"videoId": "dQw4w9WgXcQ"
}
}
// Compare multiple videos
{
"type": "tool",
"name": "compare-videos",
"parameters": {
"videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"]
}
}
トランスクリプト概要プロンプトの使用
{
"type": "prompt",
"name": "transcript-summary",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"language": "en"
}
}
拡張トランスクリプトツールの使用
// Basic multi-video transcript extraction
{
"type": "tool",
"name": "enhanced-transcript",
"parameters": {
"videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"],
"format": "timestamped"
}
}
// With search and time filtering
{
"type": "tool",
"name": "enhanced-transcript",
"parameters": {
"videoIds": ["dQw4w9WgXcQ"],
"filters": {
"timeRange": {
"start": 60, // Start at 60 seconds
"end": 180 // End at 180 seconds
},
"search": {
"query": "never gonna",
"contextLines": 2
}
},
"format": "merged"
}
}
// With smart segmentation for easier analysis
{
"type": "tool",
"name": "enhanced-transcript",
"parameters": {
"videoIds": ["dQw4w9WgXcQ"],
"filters": {
"segment": {
"count": 5,
"method": "smart" // Breaks at natural pauses
}
},
"format": "timestamped",
"language": "en"
}
}
強化されたトランスクリプト分析機能の使用
// Get key moments from a video
{
"type": "tool",
"name": "get-key-moments",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"maxMoments": "5"
}
}
// Get a segmented transcript
{
"type": "tool",
"name": "get-segmented-transcript",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"segmentCount": "4"
}
}
// Get a segment-by-segment analysis
{
"type": "prompt",
"name": "segment-by-segment-analysis",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"segmentCount": "4"
}
}
// Get customized transcript summary
{
"type": "prompt",
"name": "transcript-summary",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"language": "en",
"summaryLength": "detailed",
"includeKeywords": "true"
}
}
エラー処理
サーバーは、次のようなさまざまなエラー状態を処理します。
- 無効なAPIキー
- ビデオまたはチャンネルが見つかりません
- トランスクリプトは利用できません
- ネットワークの問題
ライセンス
マサチューセッツ工科大学
謝辞