Youtube Playlist Generator Mcp Server について
YouTube Playlist Generator MCP Serverは、YouTube Data API v3を通じてAIアプリケーションから音楽動画の検索、動画情報の確認、プレイリスト管理を行うサーバーです。読み取り専用の検索にはAPIキー、プレイリストの変更にはOAuth認証が必要です。
主な機能
- 01条件を指定した音楽動画検索
- 02動画情報の取得
- 03公開プレイリスト内の動画一覧
- 04プレイリストの作成と編集
- 05プレイリストへの動画追加・削除
- 06認証済みユーザーのプレイリスト一覧
活用シーン
- 01検索語と並び順を指定して動画を探す
- 02動画の詳細情報を確認する
- 03プレイリストを作成して公開範囲を設定する
- 04プレイリストの内容を更新する
MCP 対応
stdioのMCPサーバーとして、YouTube検索、動画、プレイリスト操作のツールをMCPクライアントに提供します。プレイリスト管理にはYouTube OAuthが、読み取り専用ツールにはAPIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
YouTube プレイリスト生成 MCP サーバー
公式の YouTube Data API v3 を使用して、AI アプリケーションから YouTube のミュージックビデオを検索し、プレイリストを管理できる Model Context Protocol(MCP)サーバーです。
機能
- ミュージックビデオの検索:カスタマイズ可能な検索パラメーターを指定して、YouTube のミュージックビデオを検索します
- 動画の詳細情報の取得:特定の動画に関する詳しい情報を取得します
- プレイリスト項目の取得:公開プレイリストの動画を一覧表示します
- プレイリスト管理:プレイリストの作成、編集、管理を含む、完全なプレイリスト管理機能を利用できます(OAuth の設定が必要です)
セットアップ
前提条件
- Node.js 18 以上
- YouTube Data API v3 を有効にした Google Cloud プロジェクト
- YouTube Data API キー
- OAuth 2.0 クライアント認証情報(任意。プレイリスト管理機能の利用には必要です)
インストール
- このリポジトリをクローンします:
git clone https://github.com/danisss9/yt-playlist-generator-mcp-server
- 依存関係をインストールします:
npm install
-
YouTube Data API キーを取得します:
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
- YouTube Data API v3 を有効にします
- 認証情報(API キー)を作成します
- API キーをコピーします
-
環境変数を設定します:
# Create a .env file
echo "YOUTUBE_API_KEY=your_api_key_here" > .env
echo "YOUTUBE_CLIENT_ID=your_client_id_here" >> .env
echo "YOUTUBE_CLIENT_SECRET=your_client_secret_here" >> .env
- TypeScript コードをビルドします:
npm run build
サーバーの実行
自動リビルドを有効にして開発する場合:
npm run dev
本番環境の場合:
npm start
MCP クライアントでの使用
このサーバーは stdio トランスポートを使用するため、stdio に対応するあらゆる MCP クライアントで使用できます。
Claude Desktop の設定
Claude Desktop の設定ファイルに追加します:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"youtube-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/yt-playlist-generator/build/index.js"],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here",
"YOUTUBE_CLIENT_ID": "your_client_id_here",
"YOUTUBE_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
GitHub Copilot を使用する Visual Studio Code の設定
Visual Studio Code で GitHub Copilot とこの MCP サーバーを使用するには、VS Code の設定で構成する必要があります:
-
VS Code の設定を開く:
Ctrl+,(Windows/Linux)またはCmd+,(macOS)を押します -
MCP を検索する:検索バーに「mcp」と入力します
-
MCP サーバーの設定を追加する:次の内容を VS Code の設定 JSON に追加します:
{
"github.copilot.chat.mcp.servers": {
"youtube-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/yt-playlist-generator/build/index.js"],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here",
"YOUTUBE_CLIENT_ID": "your_client_id_here",
"YOUTUBE_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
別の方法:設定 UI を使用する
- File > Preferences > Settings に移動します(または
Ctrl+,を使用します) - 「GitHub Copilot MCP」を検索します
- 「Github › Copilot › Chat: Mcp Servers」の横にある「Edit in settings.json」をクリックします
- 上記のとおりにサーバーの設定を追加します
環境変数の設定
セキュリティ上、設定ファイルではなく、システム全体の環境変数を設定することもできます:
Windows(PowerShell):
[Environment]::SetEnvironmentVariable("YOUTUBE_API_KEY", "your_api_key_here", "User")
[Environment]::SetEnvironmentVariable("YOUTUBE_CLIENT_ID", "your_client_id_here", "User")
[Environment]::SetEnvironmentVariable("YOUTUBE_CLIENT_SECRET", "your_client_secret_here", "User")
Windows(コマンドプロンプト):
setx YOUTUBE_API_KEY "your_api_key_here"
setx YOUTUBE_CLIENT_ID "your_client_id_here"
setx YOUTUBE_CLIENT_SECRET "your_client_secret_here"
macOS/Linux:
export YOUTUBE_API_KEY="your_api_key_here"
export YOUTUBE_CLIENT_ID="your_client_id_here"
export YOUTUBE_CLIENT_SECRET="your_client_secret_here"
# Add to ~/.bashrc, ~/.zshrc, or ~/.profile to persist
echo 'export YOUTUBE_API_KEY="your_api_key_here"' >> ~/.bashrc
echo 'export YOUTUBE_CLIENT_ID="your_client_id_here"' >> ~/.bashrc
echo 'export YOUTUBE_CLIENT_SECRET="your_client_secret_here"' >> ~/.bashrc
その後、VS Code の設定から env セクションを削除します:
{
"github.copilot.chat.mcp.servers": {
"youtube-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/yt-playlist-generator/build/index.js"]
}
}
}
VS Code での使用方法
設定が完了すると、GitHub Copilot Chat から MCP サーバーを使用できます:
- Copilot Chat を開きます(
Ctrl+Alt+Iを押すか、チャットアイコンをクリックします) - 自然言語で YouTube を操作します:
- 「ジャズのミュージックビデオを検索して」
- 「My Favorites という新しいプレイリストを作成して」
- 「この動画を自分のプレイリストに追加して」
- 「この YouTube 動画の詳細を表示して」
利用可能なツール
読み取り専用ツール(API キー認証)
search_music_videos
指定した条件で YouTube のミュージックビデオを検索します。
パラメーター:
query(string):ミュージックビデオの検索クエリmaxResults(number、1~50、デフォルト:10):結果の最大数order(enum):並べ替え順 — 「relevance」、「date」、「rating」、「viewCount」、「title」
get_video_details
特定の YouTube 動画に関する詳細情報を取得します。
パラメーター:
videoId(string):YouTube 動画 ID
get_playlist_items
公開 YouTube プレイリストから動画を取得します。
パラメーター:
playlistId(string):YouTube プレイリスト IDmaxResults(number、1~50、デフォルト:25):項目の最大数
OAuth が必要なツール(プレイリスト管理)
authenticate_youtube
YouTube OAuth で認証し、プレイリスト管理機能を有効にします。
パラメーター:
getAuthUrl(boolean、デフォルト:false):認証 URL を取得するには true に設定しますauthCode(string、任意):OAuth フローで取得した認証コード
get_auth_status
現在の OAuth 認証状況を確認します。
パラメーター: なし
create_playlist
新しい YouTube プレイリストを作成します(OAuth 認証が必要です)。
パラメーター:
title(string):プレイリストのタイトルdescription(string、任意):プレイリストの説明privacy(enum):"private"、"public"、または "unlisted"
edit_playlist
既存のプレイリスト情報を編集します(OAuth 認証が必要です)。
パラメーター:
playlistId(string):編集するプレイリストの IDtitle(string、任意):プレイリストの新しいタイトルdescription(string、任意):プレイリストの新しい説明privacy(enum、任意):新しいプライバシー設定。"private"、"public"、または "unlisted"
注: 更新するには、少なくとも 1 つのフィールド(title、description、privacy)を指定する必要があります。
add_to_playlist
既存のプレイリストに動画を追加します(OAuth 認証が必要です)。
パラメーター:
playlistId(string):対象のプレイリスト IDvideoId(string):追加する動画の ID
list_playlists
ユーザーのプレイリストを一覧表示します(OAuth 認証が必要です)。
パラメーター:
maxResults(number、1~50、デフォルト:25):プレイリストの最大数mine(boolean、デフォルト:true):認証済みユーザーのプレイリストを一覧表示します
remove_from_playlist
プレイリストから動画を削除します(OAuth 認証が必要です)。
パラメーター:
playlistItemId(string):削除するプレイリスト項目の ID(get_playlist_items から取得)
OAuth 認証のセットアップ
プレイリスト管理機能をすべて利用するには、OAuth 2.0 を設定する必要があります。
1. Google Cloud Console のセットアップ
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
- YouTube Data API v3 を有効にします
- 「Credentials」→「Create Credentials」→「OAuth 2.0 Client ID」の順に進みます
- アプリケーションの種類として「Desktop Application」を選択します
- 認証情報をダウンロードするか、Client ID と Client Secret をコピーします
2. 環境設定
OAuth 認証情報を .env ファイルに追加します。
YOUTUBE_API_KEY=your_api_key_here
YOUTUBE_CLIENT_ID=your_client_id_here
YOUTUBE_CLIENT_SECRET=your_client_secret_here
3. 認証フロー
authenticate_youtubeツールでgetAuthUrl: trueを指定します- 表示された URL をブラウザーで開きます
- Google アカウントにサインインし、権限を許可します
- 認証コードをコピーします
authCodeパラメーターを指定して、再度authenticate_youtubeツールを使用します
4. 認証済み機能の使用
認証が完了すると、次の操作ができます。
- 新しいプレイリストを作成する
- 既存のプレイリスト情報(タイトル、説明、プライバシー設定)を編集する
- プレイリストに動画を追加する
- 自分の非公開プレイリストを一覧表示する
- プレイリストから動画を削除する
API の制限
- クォータ制限:YouTube API には 1 日あたりのクォータ制限があります(デフォルトでは 10,000 単位/日)
- レート制限:API 呼び出しにはレート制限が適用されます
- OAuth トークン:アクセストークンには有効期限があり、更新が必要です(自動的に処理されます)
- 権限:利用可能な操作は OAuth スコープによって決まります
開発
ビルド
npm run build
開発モード
npm run dev
プロジェクト構成
src/
└── index.ts # Main server implementation
build/ # Compiled JavaScript output
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 十分にテストします
- プルリクエストを送信します
ライセンス
MIT License — 詳細は LICENSE ファイルを参照してください
トラブルシューティング
よくある問題
-
「YOUTUBE_API_KEY environment variable is required」
- YOUTUBE_API_KEY 環境変数が設定されていることを確認してください
- API キーが有効で、YouTube Data API にアクセスできることを確認してください
-
「Quota exceeded」エラー
- 1 日あたりの API クォータ上限に達しています
- クォータがリセットされるまで待つか、クォータの増加を申請してください
-
「Playlist not found」エラー
- プレイリスト ID が正しいことを確認してください
- プレイリストが公開されていることを確認してください(非公開のプレイリストには OAuth が必要です)
-
ビルドエラー
- Node.js 18 以降がインストールされていることを確認してください
npm installを実行して、すべての依存関係がインストールされていることを確認してくださいnpm run buildで TypeScript のコンパイルを確認してください
セキュリティに関する考慮事項
- API キーをバージョン管理にコミットしないでください
- 機密性の高い設定には環境変数を使用してください
- すべてのユーザー入力を検証してください
- 適切なエラー処理とログ記録を実装してください
このプロジェクトは GitHub Copilot を使用して作成されました
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。