YouTube MCP Server
YouTube MCP サーバー
YouTube を Claude Code に統合する MCP サーバー — 動画の文字起こし、検索、メタデータ、チャンネル情報、プレイリスト、コメント、トレンド動画、エンゲージメント分析、チャプター抽出、SponsorBlock 統合、最もリプレイされたヒートマップを提供します。YouTube Data API v3、youtube-transcript、SponsorBlock を使用しています。
クイックスタート
ステップ 1: API キーを取得する
Google Cloud Console にアクセスします
プロジェクトを作成する(または既存のプロジェクトを選択する)
YouTube Data API v3 を有効にします:
API ライブラリ にアクセスします
有効にする をクリックします
API キーを作成します:
認証情報 にアクセスします
認証情報を作成 > API キー をクリックします
キーをコピーします(ステップ 3 で必要になります)
ステップ 2: 前提条件をインストールする
Node.js 18+ - こちらからダウンロード
Claude Code CLI - インストールガイド
ステップ 3: MCP サーバーをインストールする
3.1 リポジトリをクローンする
git clone https://github.com/wynandw87/claude-code-youtube-mcp.git
cd claude-code-youtube-mcp3.2 依存関係をインストールする
macOS / Linux / Windows:
npm install注: 依存関係のインストールとサーバーのビルドは、1 つのステップで自動的に実行されます。
3.3 Claude Code に登録する
インストール範囲を選択してください:
範囲 | フラグ | 使用できるユーザー |
ユーザー(推奨) |
| あなた(任意のプロジェクト内) |
プロジェクト |
| このリポジトリをクローンした人 |
ローカル |
| 現在のディレクトリ内でのみ |
YOUR_API_KEY を実際の YouTube Data API キーに置き換え、dist/index.js へのフルパスを使用してください。
ヒント: フルパスを取得するには、クローンしたディレクトリから以下を実行します:
macOS/Linux:
echo "$(pwd)/dist/index.js"Windows:
echo %cd%\dist\index.js
macOS / Linux:
claude mcp add -s user youtube -e YOUTUBE_API_KEY=YOUR_API_KEY -- node /full/path/to/dist/index.jsWindows (CMD):
claude mcp add -s user youtube -e "YOUTUBE_API_KEY=YOUR_API_KEY" -- node "C:\full\path\to\dist\index.js"Windows (PowerShell):
claude mcp add -s user youtube -e "YOUTUBE_API_KEY=YOUR_API_KEY" '--' node "C:\full\path\to\dist\index.js"代替方法: npm ヘルパーを使用する(API キーが環境変数に設定されている場合)
export YOUTUBE_API_KEY=YOUR_API_KEY
npm run install:claudeステップ 4: Claude Code を再起動する
Claude Code を閉じて再度開き、変更を反映させます。
ステップ 5: インストールを確認する
claude mcp listyoutube が Connected ステータスで一覧表示されるはずです。
Related MCP server: YouTube MCP Server
機能
文字起こし・キャプション
文字起こしを取得(
get_transcript)- タイムスタンプ付きの完全な動画文字起こしを取得します。複数の言語に対応文字起こしを検索(
search_transcript)- キーワードやフレーズが動画内のどこに登場するかをタイムスタンプ付きで検索しますクリーンな文字起こし(
get_clean_transcript)- SponsorBlock を使用してスポンサー、イントロ、アウトロ、不要な言葉を削除した文字起こしチャプターを抽出(
extract_chapters)- 動画の説明からチャプターのタイムスタンプを解析します
検索・発見
動画を検索(
search_videos)- 日付、長さ、タイプ、並び順のフィルターに対応した完全な YouTube 検索チャンネル内を検索(
search_within_channel)- 特定のクリエイターの動画を検索しますトレンド動画を取得(
get_trending_videos)- 地域とカテゴリ別の現在のトレンド動画チャンネルの動画を取得(
get_channel_videos)- チャンネルの最近のアップロード動画を日付または再生回数で並べ替えて取得します
動画・チャンネル情報
動画メタデータ(
get_video_metadata)- タイトル、説明、長さ、再生回数、いいね数、タグなどチャンネル情報(
get_channel_info)- 登録者数、動画数、説明、国プレイリスト項目(
get_playlist_items)- プレイリスト内のすべての動画と、その位置とメタデータ
分析・エンゲージメント
エンゲージメントを計算(
calculate_engagement)- 公開統計からのいいね率、コメント率、エンゲージメント率最もリプレイされた部分(
get_most_replayed)- 視聴者が最も見返す部分を示すヒートマップデータ動画コメント(
get_video_comments)- いいね数と返信数付きのトップコメント
ユーティリティ
YouTube URL を解析(
parse_youtube_url)- 任意の YouTube URL 形式から動画・チャンネル・プレイリスト ID を抽出します
使用方法
インストール後、トリガーフレーズを使用して YouTube ツールを呼び出します:
トリガー | ツール | 例 |
| Get Transcript | "この動画の youtube transcript を取得して" |
| Search Videos | "youtube search で React チュートリアルを検索して" |
| Video Metadata | "この動画の youtube metadata を取得して" |
| Channel Info | "@ThePrimeagen の youtube channel info を取得して" |
| Playlist Items | "この youtube playlist の動画を一覧表示して" |
| Video Comments | "この動画の youtube comments を取得して" |
| Trending Videos | "アメリカで youtube でトレンドになっているのは?" |
| Extract Chapters | "この youtube video から chapters を抽出して" |
| Calculate Engagement | "この動画の youtube engagement を計算して" |
| Most Replayed | "この youtube video の最もリプレイされた部分を表示して" |
| Clean Transcript | "スポンサーなしのクリーンな youtube transcript を取得して" |
| Search Transcript | "youtube transcript で 'authentication' を検索して" |
または自然な言葉で質問します:
"この YouTube 動画の文字起こしを取得して要約して"
"この動画の最もリプレイされた部分は?"
"このチャンネルの TypeScript に関する最近の動画を見つけて"
"この動画の再生回数といいね数は?"
"この動画のコメントを取得して感情を要約して"
"このチュートリアルのチャプターを表示して"
"スポンサー読み上げなしのクリーンな文字起こしを取得して"
"今、YouTube のゲームカテゴリでトレンドになっているのは?"
ツールリファレンス
parse_youtube_url
任意の YouTube URL 形式を解析し、識別子を抽出します。API キーは不要です。
パラメータ:
url(string、必須)- 任意の YouTube URL または動画 ID
対応形式: youtube.com/watch?v=、youtu.be/、/shorts/、/embed/、/playlist?list=、/channel/、/@handle、/c/、/user/、動画 ID のみ
get_transcript
YouTube 動画の完全な文字起こし・キャプションを取得します。API キーは不要です。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 IDlang(string、任意)- キャプションの言語コード(デフォルト:"en")
search_transcript
動画の文字起こし内でキーワードやフレーズを検索します。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 IDquery(string、必須)- 検索するキーワードまたはフレーズlang(string、任意)- キャプションの言語コード(デフォルト:"en")
extract_chapters
動画の説明からチャプターのタイムスタンプを抽出します。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 ID
get_clean_transcript
SponsorBlock を使用してスポンサー読み上げ、イントロ、アウトロ、不要な言葉を削除した文字起こしを取得します。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 IDlang(string、任意)- キャプションの言語コード(デフォルト:"en")
get_most_replayed
視聴者が最も見返す部分を示す「最もリプレイされた」ヒートマップデータを取得します。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 ID
注: ヒートマップデータを利用するには、約 50,000 回以上の再生回数が必要です。
search_videos
完全なフィルター対応で YouTube を検索します。
パラメータ:
query(string、必須)- 検索クエリmax_results(number、任意)- 結果数、1〜50(デフォルト:10)order(string、任意)-"relevance"、"date"、"viewCount"、"rating"(デフォルト:"relevance")duration(string、任意)-"short"(4 分未満)、"medium"(4〜20 分)、"long"(20 分超)upload_date(string、任意)-"hour"、"day"、"week"、"month"、"year"type(string、任意)-"video"、"channel"、"playlist"(デフォルト:"video")
get_video_metadata
YouTube 動画の詳細なメタデータを取得します。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 ID
戻り値: タイトル、説明、チャンネル、長さ、再生回数・いいね数・コメント数、タグ、カテゴリ、サムネイル、ライブステータスなど。
get_channel_info
YouTube チャンネル情報を取得します。
パラメータ:
url(string、必須)- YouTube チャンネル URL、@handle、またはチャンネル ID
戻り値: タイトル、説明、登録者数・動画数・再生回数、国、カスタム URL、サムネイル。
get_playlist_items
YouTube プレイリスト内のすべての動画を取得します。
パラメータ:
url(string、必須)- YouTube プレイリスト URL またはプレイリスト IDmax_results(number、任意)- 項目数、1〜50(デフォルト:25)
get_channel_videos
YouTube チャンネルの最近の動画を取得します。
パラメータ:
url(string、必須)- YouTube チャンネル URL、@handle、またはチャンネル IDmax_results(number、任意)- 動画数、1〜50(デフォルト:25)order(string、任意)-"date"、"viewCount"(デフォルト:"date")
get_trending_videos
現在トレンド・人気の YouTube 動画を取得します。
パラメータ:
region_code(string、任意)- ISO 3166-1 alpha-2 国コード(デフォルト:"US")category_id(string、任意)- YouTube カテゴリ ID(例: 音楽は"10"、ゲームは"20"、科学・テクノロジーは"28")max_results(number、任意)- 結果数、1〜50(デフォルト:10)
search_within_channel
特定の YouTube チャンネル内で動画を検索します。
パラメータ:
url(string、必須)- YouTube チャンネル URL、@handle、またはチャンネル IDquery(string、必須)- 検索クエリmax_results(number、任意)- 結果数、1〜50(デフォルト:10)
get_video_comments
YouTube 動画のトップレベルのコメントを取得します。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 IDmax_results(number、任意)- コメント数、1〜100(デフォルト:20)order(string、任意)-"relevance"、"time"(デフォルト:"relevance")
calculate_engagement
YouTube 動画のエンゲージメント指標を計算します。
パラメータ:
url(string、必須)- YouTube 動画 URL または動画 ID
戻り値: 再生回数、いいね数、コメント数、いいね率、コメント率、総合エンゲージメント率。
仕組み
この MCP サーバーは、stdio トランスポートを介して Claude Code に接続し、15 個のツールを提供します:
ツール | データソース | APIキーが必要か? |
| ローカル解析 | いいえ |
| youtube-transcript ライブラリ | いいえ |
| youtube-transcript ライブラリ | いいえ |
| youtube-transcript + SponsorBlock API | いいえ |
| YouTube ページ(Innertube) | いいえ |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
| YouTube Data API v3 | はい |
メモ: APIキーなしで動作するツールは5つです(トランスクリプト、SponsorBlock、ヒートマップ、URL解析)。残りの10個はYouTube Data API v3キーが必要です。
設定
環境変数
変数 | 必須 | デフォルト | 説明 |
| はい | — | YouTube Data API v3キー |
| いいえ |
| APIタイムアウト(ミリ秒) |
YouTube API クォータ
YouTube Data API v3には1日あたり10,000ユニットのクォータがあります。各ツールの消費量は異なります:
操作 | 1回の呼び出しあたりのコスト |
| 100ユニット |
| 1ユニット |
| 1ユニット |
| 1ユニット |
| 1ユニット |
| 1ユニット |
ヒント: 検索操作は最もコストが高くなります。最近のアップロードだけが必要な場合は、
search_within_channel(100ユニット)の代わりにget_channel_videos(1ユニット)を使用してください。
トラブルシューティング
APIキーの修正
間違ったAPIキーを入力した場合は、削除して再インストールしてください:
claude mcp remove youtubeその後、上記の手順3.3のコマンドを使って再インストールします(最初にインストールしたときと同じスコープを使用してください)。
MCPサーバーが表示されない
サーバーがインストールされているか確認します:
claude mcp list一覧にない場合は、手順3に従ってインストールしてください。
サーバーが起動しない
Google Cloud Console でAPIキーが有効であることを確認します
YouTube Data APIが有効になっているか確認します:
API Library に移動します
「Enabled」と表示されるはずです
Node.jsのバージョンを確認します(18以上が必要):
node --versionサーバーがビルドされていることを確認します —
dist/index.jsがない場合は、npm installを再実行してください
接続エラー
dist/index.jsが存在するか確認します — 存在しない場合はnpm installを実行しますclaude mcp addコマンドのパスが絶対パスであることを確認します設定を変更したらClaude Codeを再起動します
クォータ超過
"quotaExceeded"エラーが表示される場合:
太平洋時間の深夜まで待ちます(クォータは毎日リセットされます)
別のAPIキーを使用します
検索ツール(100ユニット)よりも低コストのツール(1ユニットの
get_video_metadata)を優先します
トランスクリプトが利用できない
一部の動画ではトランスクリプトが無効になっています。get_transcriptツールは明確なエラーメッセージを返します。次の方法をお試しください:
別の言語コード(例:
lang: "es")手動のキャプションがなくても、自動生成キャプションが利用できる場合があります
タイムアウトエラー
接続が遅い場合は、YOUTUBE_TIMEOUT環境変数を増やします:
claude mcp add -s user youtube -e YOUTUBE_API_KEY=YOUR_KEY -e YOUTUBE_TIMEOUT=60000 -- node /path/to/dist/index.js現在の設定を確認
claude mcp listコントリビューション
プルリクエスト歓迎!シンプルで初心者に優しい内容にしてください。
ライセンス
MIT
Claude Codeコミュニティのために作られました
This server cannot be deployed
Maintenance
Related MCP Connectors
Your YouTube library in Claude, ChatGPT and Cursor: transcripts, breakdowns, summaries, search.
Your YouTube library in Claude, ChatGPT and Cursor: transcripts, breakdowns, summaries, search.
YouTube transcripts, comments, video details, heatmaps, search, channels and playlists.
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
Related MCP Servers
- FlicenseAqualityDmaintenanceIntegrates YouTube with Claude Code, enabling video transcript retrieval, search, metadata extraction, channel info, playlists, comments, trending videos, engagement analytics, chapter extraction, SponsorBlock integration, and most-replayed heatmaps.1516 npm15-
- FlicenseNot gradedqualityCmaintenanceEnables bringing YouTube to Claude Code with transcripts, search, metadata, channel info, playlists, comments, trending videos, engagement analytics, chapter extraction, SponsorBlock integration, and most-replayed heatmaps.16 npm-
- FlicenseNot gradedqualityCmaintenanceEnables bringing YouTube into Claude Code for video transcripts, search, metadata, channel info, playlists, comments, trending videos, engagement analytics, chapters, SponsorBlock clean transcripts, and most-replayed heatmaps.16 npm-
- FlicenseNot gradedqualityCmaintenanceBrings YouTube data to Claude Code, enabling video transcripts, search, metadata, channel info, playlists, comments, trending videos, engagement analytics, chapters, SponsorBlock integration, and most-replayed heatmaps.16 npm-