mcpField
Y
youtube

youtube

github.com/manojbajaj95データ・データベース109107 回インストール6 週間前に更新
リポジトリ

youtube について

youtube は curl で YouTube Data API v3 を利用するスキルです。API キーを使い、動画、チャンネル、再生リスト、コメント、急上昇動画の情報を取得できます。

主な機能

  1. 01条件を指定した動画検索
  2. 02動画の詳細と統計情報の取得
  3. 03チャンネル情報の取得
  4. 04再生リスト内の動画一覧
  5. 05コメントと急上昇動画の取得

活用シーン

  1. 01トピックやカテゴリで動画を探す
  2. 02動画の再生回数や長さを確認する
  3. 03チャンネル情報や再生リストの内容を調べる
  4. 04コメントや地域別の急上昇動画を取得する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/manojbajaj95/claude-gtm-plugin --skill youtube

インストール後、Claude Code で/youtubeを入力して読み込まれたか確認します。

詳細

YouTube Data API

直接 curl 呼び出しで YouTube Data API v3 を使用して、動画の検索、動画の詳細の取得、チャンネル情報の取得、再生リストのアイテムの一覧表示、コメントの取得を行います。

公式ドキュメント:https://developers.google.com/youtube/v3


使用する場面

次のことを行う必要がある場合に、このスキルを使用します。

  • キーワードやフィルターで動画を検索する
  • 動画の詳細(タイトル、説明、統計情報、再生時間)を取得する
  • チャンネル情報(登録者数、動画数、説明)を取得する
  • 再生リストのアイテム(再生リスト内の動画)を一覧表示する
  • 動画のコメントを取得する
  • 地域別の急上昇動画を取得する

前提条件

1. Google Cloud プロジェクトを作成する
  1. Google Cloud Console にアクセスします
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
  3. 「API とサービス」>「ライブラリ」に移動します
  4. 「YouTube Data API v3」を検索して有効にします
2. API キーを取得する
  1. 「API とサービス」>「認証情報」に移動します
  2. 「認証情報を作成」>「API キー」をクリックします
  3. API キーをコピーします
export YOUTUBE_API_KEY="your-api-key-here"
3. (任意)API キーを制限する

本番環境で使用する場合は、キーを制限します。

  • アプリケーションの制限:HTTP リファラー、IP アドレス
  • API の制限:YouTube Data API v3 のみ

重要: コマンド内で $VAR を使用し、そのコマンドを別のコマンドにパイプで渡す場合は、$VAR を含むコマンドを bash -c '...' で囲んでください。Claude Code の不具合により、パイプを直接使用すると環境変数がひそかに消去されます。

bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY" | jq .'

使用方法

ベース URL:https://www.googleapis.com/youtube/v3


1. 動画を検索する
bash -c 'curl -s "https://www.googleapis.com/youtube/v3/search?part=snippet&q=kubernetes+tutorial&type=video&maxResults=5&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {videoId: .id.videoId, title: .snippet.title, channel: .snippet.channelTitle}'

2. フィルターを指定して検索する

今年アップロードされた動画を再生回数順に検索します。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/search?part=snippet&q=react+hooks&type=video&order=viewCount&publishedAfter=2024-01-01T00:00:00Z&maxResults=10&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {videoId: .id.videoId, title: .snippet.title}'

3. 動画の詳細を取得する

<your-video-id> を実際の動画 ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics,contentDetails&id=<your-video-id>&key=${YOUTUBE_API_KEY}"' | jq '.items[0] | {title: .snippet.title, views: .statistics.viewCount, likes: .statistics.likeCount, duration: .contentDetails.duration}'

4. 複数の動画を取得する

<your-video-id-1>、<your-video-id-2>、<your-video-id-3> を実際の動画 ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics&id=<your-video-id-1>,<your-video-id-2>,<your-video-id-3>&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {id: .id, title: .snippet.title, views: .statistics.viewCount}'

5. 急上昇動画を取得する
bash -c 'curl -s "https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics&chart=mostPopular&regionCode=US&maxResults=10&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {title: .snippet.title, channel: .snippet.channelTitle, views: .statistics.viewCount}'

6. ID でチャンネルを取得する

<your-channel-id> を実際のチャンネル ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&id=<your-channel-id>&key=${YOUTUBE_API_KEY}"' | jq '.items[0] | {title: .snippet.title, subscribers: .statistics.subscriberCount, videos: .statistics.videoCount}'

7. ハンドルでチャンネルを取得する
bash -c 'curl -s "https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&forHandle=@GoogleDevelopers&key=${YOUTUBE_API_KEY}"' | jq '.items[0] | {id: .id, title: .snippet.title, subscribers: .statistics.subscriberCount}'

8. ユーザー名でチャンネルを取得する
bash -c 'curl -s "https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&forUsername=GoogleDevelopers&key=${YOUTUBE_API_KEY}"' | jq '.items[0] | {id: .id, title: .snippet.title, description: .snippet.description}'

9. 再生リストのアイテムを一覧表示する

<your-playlist-id> を実際の再生リスト ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=<your-playlist-id>&maxResults=20&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {position: .snippet.position, title: .snippet.title, videoId: .snippet.resourceId.videoId}'

10. チャンネルのアップロード再生リストを取得する

まずチャンネルのアップロード再生リスト ID を取得し、その後動画を一覧表示します。<your-channel-id> を実際のチャンネル ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=<your-channel-id>&key=${YOUTUBE_API_KEY}"' | jq -r '.items[0].contentDetails.relatedPlaylists.uploads'

11. 動画のコメントを取得する

<your-video-id> を実際の動画 ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=<your-video-id>&maxResults=20&order=relevance&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {author: .snippet.topLevelComment.snippet.authorDisplayName, text: .snippet.topLevelComment.snippet.textDisplay, likes: .snippet.topLevelComment.snippet.likeCount}'

12. コメントを検索する

<your-video-id> を実際の動画 ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=<your-video-id>&searchTerms=great+video&maxResults=10&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {author: .snippet.topLevelComment.snippet.authorDisplayName, text: .snippet.topLevelComment.snippet.textDisplay}'

13. 動画カテゴリを取得する
bash -c 'curl -s "https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&regionCode=US&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {id: .id, title: .snippet.title}'

14. カテゴリで動画を検索する
bash -c 'curl -s "https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&videoCategoryId=28&maxResults=10&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {videoId: .id.videoId, title: .snippet.title}'

注:カテゴリ 28 = 科学とテクノロジー


15. チャンネルの再生リストを取得する

<your-channel-id> を実際のチャンネル ID に置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/playlists?part=snippet&channelId=<your-channel-id>&maxResults=20&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {id: .id, title: .snippet.title, description: .snippet.description}'

よく使われる動画カテゴリ

IDカテゴリ
1映画とアニメーション
10音楽
17スポーツ
20ゲーム
22人物とブログ
24エンターテインメント
25ニュースと政治
26ハウツーとスタイル
27教育
28科学とテクノロジー

part パラメーターのオプション

動画
  • snippet - タイトル、説明、サムネイル、チャンネル
  • statistics - 再生回数、高評価数、コメント数
  • contentDetails - 再生時間、画質、字幕
  • status - アップロード状態、公開設定、ライセンス
  • player - 埋め込み可能なプレーヤー
チャンネル
  • snippet - タイトル、説明、サムネイル
  • statistics - 登録者数、動画数、再生回数
  • contentDetails - 関連する再生リスト(アップロード、高評価)
  • brandingSettings - チャンネルのカスタマイズ設定

ページネーション

レスポンスの nextPageToken を使用すると、さらに結果を取得できます。<your-next-page-token> を前回のレスポンスに含まれる実際のトークンに置き換えます。

bash -c 'curl -s "https://www.googleapis.com/youtube/v3/search?part=snippet&q=python&type=video&maxResults=50&pageToken=<your-next-page-token>&key=${YOUTUBE_API_KEY}"' | jq '.items[] | {title: .snippet.title}'

ガイドライン

  1. クォータ制限:API のクォータは 1 日あたり 10,000 ユニットです。検索には 100 ユニット、その他のほとんどの操作には 1 ユニットかかります
  2. レート制限:403/429 エラーが発生した場合は、指数バックオフを実装してください
  3. API キーのセキュリティ:クライアントサイドのコードで API キーを公開しないでください
  4. キャッシュ:クォータの使用量を減らすため、レスポンスをキャッシュしてください
  5. 動画 ID:youtube.com/watch?v=VIDEO_ID や youtu.be/VIDEO_ID のような URL から抽出してください

コメント