MCPサーバ - YouTube

提供: MochiuWiki : SUSE, EC, PCB

概要

YouTube MCPサーバは、Model Context Protocol (MCP) を通じて、AIアシスタントがYouTube動画の字幕・トランスクリプトを取得するための機能を提供するサーバである。
YouTube動画のURLを指定するだけで、AIアシスタントが動画の内容を分析・要約できるようになる。

YouTube Data APIキーは不要で、手軽に導入可能である。
Claude Desktop、Claude Code、VS Code等の主要なMCPクライアントに対応し、Windows、MacOS、Linuxの主要なOSで動作する。

代表的な実装として以下の2つが存在する。

YouTube文字起こしMCPサーバー実装比較
実装名 説明
mcp-youtube
(@anaisbetts/mcp-youtube)
Ani Betts氏が開発した実装であり、yt-dlpを使用して字幕を取得する。
単純な構成で導入が容易であり、YouTube Data APIキーは不要である。
mcp-server-youtube-transcript
(@kimtaeyoon83/mcp-server-youtube-transcript)
Kim Taeyoon氏が開発した実装であり、
多言語対応、広告フィルタリング、タイムスタンプ制御等の高度な機能を提供する。
外部ツールへの依存がなく、Node.jsのみで動作する。


主な活用シーンを以下に示す。

  • 動画コンテンツの要約と分析
  • 技術動画から情報抽出
  • ポッドキャスト形式コンテンツの分析
  • 言語学習における多言語字幕の取得



2つのサーバの比較

下表に、mcp-youtubeとmcp-server-youtube-transcriptの主要な違いを示す。

YouTube MCPサーバ比較
項目 mcp-youtube mcp-server-youtube-transcript
開発元 Ani Betts Kim Taeyoon
npmパッケージ @anaisbetts/mcp-youtube @kimtaeyoon83/mcp-server-youtube-transcript
バージョン 0.7.4 0.1.1 (npm)
ライセンス MIT MIT
GitHub スター数 538 582
外部依存 yt-dlp 必須 なし
多言語対応 対応 (en優先、フォールバック) 対応 (自動フォールバック)
広告フィルタリング なし 対応 (デフォルト有効)
タイムスタンプ制御 タイムスタンプ除去 表示 / 非表示を選択可能
YouTube Shorts対応 対応 (yt-dlp依存) 対応
YouTube API キー 不要 不要


バージョンの0.1.1 (npm)は、npmで公開されているパッケージのバージョンを示す。GitHub上の開発状況とは別に確認する必要がある。

動作要件

mcp-youtubeの要件

  • Node.js
    MCPサーバの実行環境として必要
  • yt-dlp
    字幕取得のために必要な外部ツール
    MacOS: brew install yt-dlp
    Python環境: pip install yt-dlp
    Windows (WinGet): winget install yt-dlp


mcp-server-youtube-transcriptの要件

  • Node.js 18以上
    MCPサーバの実行環境として必要
  • 外部ツールへの依存はなし



インストール

yt-dlpのインストール (mcp-youtubeを使用する場合)

mcp-youtubeはyt-dlpに依存するため、事前にインストールが必要である。

MacOSの場合

Homebrewを使用する場合は、以下に示すコマンドを実行する。

brew install yt-dlp


Linux / MacOSの場合 (pip経由)

pipを使用する場合は、以下に示すコマンドを実行する。

pip install yt-dlp


Windowsの場合

WinGetを使用する場合は、以下に示すコマンドを実行する。

winget install yt-dlp


インストール後、yt-dlpコマンドがPATHに含まれていることを確認する。

yt-dlp --version



MCPクライアントの設定

設定ファイルの場所

各MCPクライアントの設定ファイルの場所は、以下の通りである。

Claude Desktopの設定ファイルを以下に示す。

  • Linux
    ~/.config/Claude/claude_desktop_config.json
  • MacOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows
    %APPDATA%\Claude\claude_desktop_config.json


Claude Codeの設定ファイルを以下に示す。

  • local スコープ (デフォルト)
    ~/.claude.json 内の現在プロジェクト用エントリに保存される。
  • project スコープ
    プロジェクトルートの .mcp.json に保存される。
    チーム共有用。
  • user スコープ
    ~/.claude.json (ホームディレクトリ) に保存される。
    全プロジェクトで利用可能。


mcp-youtubeの設定

Claude Desktopでの設定

claude_desktop_config.json ファイルに以下に示す内容を設定する。

 {
   "mcpServers": {
     "youtube": {
       "command": "npx",
       "args": ["-y", "@anaisbetts/mcp-youtube"]
     }
   }
 }


設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。

Claude Codeでの設定

Claude Codeでは、claude mcp add コマンドを使用してMCPサーバを追加できる。

claude mcp add youtube -- npx -y @anaisbetts/mcp-youtube


project スコープを明示する場合は、--scope (短縮形 -s) オプションを使用する。

claude mcp add --scope project youtube -- npx -y @anaisbetts/mcp-youtube


VS Codeでの設定

VS Code 1.99以降では、GitHub Copilot Chat がMCPをネイティブサポートしている。
.vscode/mcp.json ファイルに以下に示す内容を設定する。
VS Codeは servers キーを使用し、Claude DesktopやCursorの mcpServers とは異なる点に注意する。

 {
   "servers": {
     "youtube": {
       "type": "stdio",
       "command": "npx",
       "args": ["-y", "@anaisbetts/mcp-youtube"]
     }
   }
 }


Cursorでの設定

~/.cursor/mcp.json (グローバル) または .cursor/mcp.json (プロジェクト) ファイルに以下に示す内容を設定する。
Cursorは Claude Desktop と同じ mcpServers キーを使用する。

 {
   "mcpServers": {
     "youtube": {
       "command": "npx",
       "args": ["-y", "@anaisbetts/mcp-youtube"]
     }
   }
 }


Windowsでの設定

Windows環境で npx の起動に失敗する場合、cmd /c ラッパーを使用することで動作する場合がある。
公式ドキュメントでは必須とされていないが、環境依存の回避策として使用できる。

 {
   "mcpServers": {
     "youtube": {
       "command": "cmd",
       "args": ["/c", "npx", "-y", "@anaisbetts/mcp-youtube"]
     }
   }
 }


mcp-server-youtube-transcriptの設定

Claude Desktopでの設定

claude_desktop_config.json ファイルに以下に示す内容を設定する。

 {
   "mcpServers": {
     "youtube-transcript": {
       "command": "npx",
       "args": ["-y", "@kimtaeyoon83/mcp-server-youtube-transcript"]
     }
   }
 }


設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。

Claude Codeでの設定
claude mcp add youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript


project スコープを明示する場合は、--scope (短縮形 -s) オプションを使用する。

claude mcp add --scope project youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript


VS Codeでの設定

VS Code 1.99以降では、GitHub Copilot ChatがMCPをネイティブサポートしている。

.vscode/mcp.json ファイルに以下に示す内容を設定する。
VS Codeは servers キーを使用して、Claude DesktopやCursorの mcpServers とは異なることに注意する。

 {
   "servers": {
     "youtube-transcript": {
       "type": "stdio",
       "command": "npx",
       "args": ["-y", "@kimtaeyoon83/mcp-server-youtube-transcript"]
     }
   }
 }


Cursorでの設定

~/.cursor/mcp.json (グローバル) または .cursor/mcp.json (プロジェクト) ファイルに以下に示す内容を設定する。
Cursorは Claude Desktop と同じ mcpServers キーを使用する。

 {
   "mcpServers": {
     "youtube-transcript": {
       "command": "npx",
       "args": ["-y", "@kimtaeyoon83/mcp-server-youtube-transcript"]
     }
   }
 }


Windowsでの設定

Windows環境でnpxの起動に失敗する場合、cmd /c ラッパーを使用することで動作する場合がある。
公式ドキュメントでは必須とされていないが、環境依存の回避策として使用できる。

 {
   "mcpServers": {
     "youtube-transcript": {
       "command": "cmd",
       "args": ["/c", "npx", "-y", "@kimtaeyoon83/mcp-server-youtube-transcript"]
     }
   }
 }


OpenCodeでの設定

OpenCodeでは、opencode.json / opencode.jsonc ファイル または opencode mcp add コマンドでMCPサーバを追加できる。

設定ファイルの場所

OpenCodeの設定ファイルは、グローバルスコープまたはプロジェクトスコープに配置する。

  • グローバルスコープ
    ~/.config/opencode/opencode.json
  • プロジェクトスコープ
    <プロジェクトルート>/opencode.json または .opencode/opencode.json


mcp-youtubeの設定例

opencode.json / opencode.jsonc ファイルに以下に示す内容を設定する。

 {
   "$schema": "https://opencode.ai/config.json",
   "mcp": {
     "youtube": {
       "type": "local",
       "command": ["npx", "-y", "@anaisbetts/mcp-youtube"]
     }
   }
 }


コマンドで追加する場合は、以下に示すコマンドを実行する。

opencode mcp add youtube -- npx -y @anaisbetts/mcp-youtube


mcp-server-youtube-transcriptの設定例

opencode.json に以下に示す内容を設定する。

 {
   "$schema": "https://opencode.ai/config.json",
   "mcp": {
     "youtube-transcript": {
       "type": "local",
       "command": ["npx", "-y", "@kimtaeyoon83/mcp-server-youtube-transcript"]
     }
   }
 }


コマンドで追加する場合は、以下に示すコマンドを実行する。

opencode mcp add youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript


analyze_video を使用する場合は、環境変数を指定する。

 {
   "$schema": "https://opencode.ai/config.json",
   "mcp": {
     "youtube-transcript": {
       "type": "local",
       "command": ["npx", "-y", "@kimtaeyoon83/mcp-server-youtube-transcript"],
       "environment": {
         "TWELVELABS_API_KEY": "{env:TWELVELABS_API_KEY}"
       }
     }
   }
 }


設定の確認

登録済みのMCPサーバは、以下に示すコマンドで確認できる。

opencode mcp list
opencode mcp debug youtube
opencode mcp debug youtube-transcript


opencode mcp ls コマンドも一覧表示の別名として使用できる。

OpenCode固有の注意事項
  • type は、local または remote を指定する。
    Claude Desktopの stdiossehttp とは異なる。
  • command は配列形式で指定する。
    Claude Desktopの commandargs を1つの配列に結合する。
  • 環境変数フィールドは、environment を使用する。
  • 環境変数の値は、{env:VARIABLE_NAME} 形式で参照できる。



ツール仕様

mcp-youtubeのツール

下表に、mcp-youtubeが提供するツールを示す。

mcp-youtube ツール一覧
ツール名 説明
download_youtube_url YouTube URLを指定して字幕データを取得する。
yt-dlpを使用して字幕データを取得し、テキスト形式で返す。
パラメータ: url (必須)


mcp-youtubeのツール名は download_youtube_url であり、mcp-server-youtube-transcriptの get_transcript とは異なる。

mcp-server-youtube-transcriptのツール

下表に、mcp-server-youtube-transcriptが提供するツールとパラメータを示す。

mcp-server-youtube-transcript ツール一覧
ツール名 パラメータ 説明
get_transcript url (必須) YouTube動画URL、Shorts URL、動画IDを指定する。
get_transcript lang (オプション、デフォルト: "en") 取得する字幕の言語コードを指定する。
例: ja (日本語)、en (英語)、ko (韓国語)
get_transcript include_timestamps (オプション、デフォルト: false) タイムスタンプを字幕テキストに含めるかどうかを指定する。
get_transcript strip_ads (オプション、デフォルト: true) 広告・スポンサーシップに関する文字列を除去するかどうかを指定する。
analyze_video url (必須) 解析対象の動画URL。
YouTube視聴ページURLではなく、公開された直接動画URLを指定する。
analyze_video prompt (オプション) 解析指示。
デフォルトは一般要約。
analyze_video model (オプション、デフォルト: pegasus1.2) 解析モデル。
pegasus1.2 または pegasus1.5 を指定する。
analyze_video max_tokens (オプション、デフォルト: 2048) 最大出力トークン数。


analyze_video ツールはTwelveLabs Pegasusを使用するため、環境変数 TWELVELABS_API_KEY が必要となる。
ただし、get_transcript の使用には、この環境変数は不要である。

対応URL形式 (mcp-server-youtube-transcript)

mcp-server-youtube-transcriptは、以下に示すURL形式に対応している。
YouTube Shorts URLも使用できることが確認されている。



TwelveLabs APIキーの取得

mcp-server-youtube-transcript の analyze_video ツールを使用するには、TwelveLabsのAPIキーが必要である。

ただし、get_transcript ツールのみを使用する場合は、APIキーは不要である。

取得手順を以下に示す。

手順1: アカウントの作成

TwelveLabs Playgroundにアクセスして、アカウントを作成する。
メールアドレス、Googleアカウント、GitHubアカウントのいずれかで登録できる。

新規登録すると、自動的に無料プラン (Free) が割り当てられる。
無料プランは、クレジットカードの登録なしで利用できる。

手順2: APIキーの作成

アカウント作成後、以下に示す手順でAPIキーを取得する。

  1. TwelveLabsのDashboardにログインする。
  2. サイドバーから[API Keys]を選択する。
    直接アクセスする場合のURL: API Keys ページ
  3. [Create API Key]ボタンを押下する。
  4. APIキーの名前 (任意) と有効期限を設定する。
    デフォルトの有効期限は12ヶ月である。
  5. [Create]ボタンを押下して、APIキーを生成する。
  6. 一覧に表示されたAPIキーの横のコピーアイコンを選択して、クリップボードにコピーする。


手順3: APIキーの設定

取得したAPIキーを、環境変数 TWELVELABS_API_KEY に設定する。
設定方法は、使用するMCPクライアントにより異なる。

各MCPクライアントでの設定方法を以下に示す。

  • OpenCode
    opencode.jsonenvironment フィールドに指定する。
    詳細を知りたい場合は、本ページのOpenCodeでの設定セクションを参照すること。
  • Claude Desktop
    claude_desktop_config.json のサーバ設定に env フィールドを追加して指定する。
  • Claude Code
    claude mcp add コマンドの --env (短縮形 -e) オプションで指定する。
  • VS Code
    .vscode/mcp.json のサーバ設定に env フィールドを追加して指定する。
  • Cursor
    ~/.cursor/mcp.json または .cursor/mcp.json のサーバ設定に env フィールドを追加して指定する。


Claude CodeでのAPIキー指定例を以下に示す。

claude mcp add -e TWELVELABS_API_KEY=<取得したAPIキー> youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript


無料枠と料金

TwelveLabsの無料プラン (Free) では、合計600分 (10時間) まで動画をインデックスできる。
この無料枠は累積であり、インデックスや動画を削除しても復元されない。

無料枠を超えて利用する場合は、Developerプランへのアップグレードが必要である。
Developerプランへのアップグレードには、クレジットカードの登録が必要となる。

下表に、Pegasus 1.2の主な料金を示す。

Pegasus 1.2 の主な料金
項目 単価
動画インデックス (1回) $0.042 / 分
API入力 (動画) $0.021 / 分
API出力 (テキスト) $0.0075 / 1,000 トークン


料金は変動する可能性があるため、最新の料金体系はTwelveLabs公式の料金ページで確認すること。


使用方法

MCPサーバを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。

動画の要約

YouTube動画の内容を要約する場合の操作例を以下に示す。

  • 動画全体を要約する場合
     # プロンプト例 :
     
     このYouTube動画を要約してください: https://www.youtube.com/watch?v=xxxxx
    
  • キーポイントを抽出する場合
     # プロンプト例 :
     
     この動画のキーポイントを5つ教えてください: https://www.youtube.com/watch?v=xxxxx
    


多言語字幕の取得

特定の言語で字幕を取得する場合の操作例を以下に示す。
mcp-server-youtube-transcriptを使用する場合に有効である。

  • 日本語字幕を取得する場合
     # プロンプト例 :
     
     この動画の日本語字幕を取得してください: https://www.youtube.com/watch?v=xxxxx
    


技術情報の抽出

技術動画から特定の情報を抽出する場合の操作例を以下に示す。

  • 動画で紹介されているツールを一覧化する場合
     # プロンプト例 :
     
     この技術動画で紹介されているツールを一覧にしてください: https://www.youtube.com/watch?v=xxxxx
    



トラブルシューティング

下表に、一般的なエラーと対処法を示す。

トラブルシューティング一覧
問題 原因 対処法
yt-dlpが見つからない (mcp-youtube) yt-dlpがインストールされていない。
または、PATHに含まれていない。
yt-dlpをインストールして、PATHに追加する。
yt-dlp --version コマンドで動作確認する。
字幕が取得できない 動画に字幕が存在しない。
または、字幕が無効化されている。
字幕が存在する動画を指定する。
動画のYouTubeページで字幕の有無を確認する。
指定した言語の字幕が取得できない 指定した言語コードの字幕が動画に存在しない。 別の言語コードを試す。
mcp-server-youtube-transcriptは自動フォールバックを試みるが、
全言語で字幕がない場合はエラーとなる。
npxコマンドエラーが発生する (Windows) Windowsでは npx を直接実行できない場合がある。 設定ファイルで cmd /c ラッパーを使用する。
Node.jsバージョンエラーが発生する インストールされているNode.jsが要件を満たしていない。 mcp-server-youtube-transcriptの場合、
Node.js v18以降にアップグレードする。
MCPサーバが起動しない 設定ファイルの記述に誤りがある。
または、Node.jsがインストールされていない。
MCPクライアントを再起動する。
設定ファイルのJSON構文を確認する。
Node.jsのインストール状態を確認する。



その他のYouTube系MCPサーバ

字幕取得以外の機能 (検索、メタデータ、ダウンロード等) を提供するYouTube系MCPサーバの実装として、以下のものが知られている。

実装名 主な機能 必要なもの 備考
ZubeidHendricks/youtube-mcp-server 検索、動画統計、字幕、チャンネル、プレイリスト YouTube Data API キー Node.js (npm: zubeid-youtube-mcp-server)
kevinwatt/yt-dlp-mcp 検索、メタデータ、字幕、ダウンロード、コメント yt-dlp Node.js (npm: @kevinwatt/yt-dlp-mcp)
jkawamoto/mcp-youtube-transcript 字幕取得、タイムスタンプ付き字幕、動画情報 なし (uvxで実行) Python実装
ShellyDeng08/youtube-connector-mcp 検索、メタデータ、字幕、コメント、チャンネル統計 YouTube Data API キー Python実装


これらは、単純な字幕取得を超えて、検索やダウンロード、統計情報の取得等の機能を必要とする場合に検討する価値がある。