コンテンツにスキップ

YouTube MCP サーバー移行記録

対応日: 2026-02-22 対応issue: #21 YouTube MCP (mcp-youtube) の429レート制限エラーへの対応


問題の状態(移行前)

項目 内容
使用MCPサーバー @anaisbetts/mcp-youtube
内部実装 yt-dlp v2026.02.04
エラー内容 HTTP Error 429: Too Many Requests
原因 YouTubeがyt-dlpのリクエストをBotとして検出・レート制限
副次問題 Deno未インストール(品質低下)、ffmpeg未インストール
ERROR: Unable to download video subtitles for 'en': HTTP Error 429: Too Many Requests

対応の流れ

1. 現状確認

  • .mcp.json(プロジェクトローカル): github, playwright のみ
  • ~/.claude.json(グローバル): mcp-youtube = @anaisbetts/mcp-youtube が登録済み
  • issue推奨アクション1位「youtube-transcript-mcp に差し替え」を採用

2. youtube-transcript-mcp の動作確認

npx -y youtube-transcript-mcp
# → '"bun"' is not recognized エラー
# → Bunランタイムが必要と判明

3. Bun のインストール

irm bun.sh/install.ps1 | iex
# → Bun 1.3.9 インストール完了
# → C:\Users\Kazuma Teramachi\.bun\bin\bun.exe
# → ユーザーPATHに自動登録済み

動作確認:

bun --version
# → 1.3.9

4. youtube-transcript-mcp の起動確認

timeout 5 npx -y youtube-transcript-mcp
# → タイムアウト(サーバーが起動して待機中)= 正常動作

5. グローバルMCPサーバー設定の更新

~/.claude.json を直接編集(Pythonスクリプトで更新):

変更前:

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

変更後:

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

注意: claude mcp add コマンドはbash上で /cC:/ に変換されるバグがあったため、Pythonで直接JSON編集を採用。

6. issue #21 にコメントを記録

作業内容をissueコメントとして残した。


移行後の状態

項目 内容
使用MCPサーバー youtube-transcript-mcp v0.1.5
内部実装 YouTube字幕API直接利用(yt-dlp不依存)
Bunランタイム v1.3.9(~/.bun/bin/
設定場所 ~/.claude.json > mcpServers > mcp-youtube

残タスク・次のステップ

  • Claude Codeを再起動して新しい mcp-youtube サーバーを読み込む
  • 実際のYouTube URLで字幕取得テストを実施
  • 動作確認後、issue #21 をClose
  • (任意)Deno + ffmpeg のインストール(yt-dlpの品質向上・補完目的)

関連情報

  • youtube-transcript-mcp npm: https://www.npmjs.com/package/youtube-transcript-mcp
  • Bun公式: https://bun.sh
  • 元のissue: https://github.com/KZ55230/GeminiCLI/issues/21