Communitygithub.com

techhorizonlabs/youtube-channel-profile

YouTube Data API v3を使用してチャンネルをプロファイリング。登録者数、視聴数、アップロード頻度、最新の視聴傾向、エンゲージメント、Shorts割合、トップ動画、推定広告収入の範囲を算出します。チャンネルURL、@ハンドル、チャンネルIDが与えられたときに使用します。

youtube-channel-profile とは?

このスキルは、YouTube Data API v3を介して公開チャンネルデータを取得し、詳細なプロファイルレポートを生成します。登録者数、総視聴数、直近の動画の視聴数・いいね・コメント数などの生データに加え、アップロード頻度(中央値の間隔、月間アップロード数)、直近アップロードからの経過日数、視聴傾向(最新10件とその前10件の中央値比較)、エンゲージメント率(いいね+コメントを視聴数で除算)、Shortsと長尺動画の割合(180秒以下をShortsと判定)、視聴数トップ5の動画、過去30日間に公開された動画の総視聴数から推定した月間視聴数、そしてSocial Bladeの標準CPM範囲(0.25~4.00米ドル)を基にした推定広告収入範囲をレポートします。 このスキルはClaude Code(または同様のAIエージェント)で動作し、`YOUTUBE_API_KEY`環境変数にAPIキーが必要です。Google CloudプロジェクトでYouTube Data API v3を有効にし、APIキーをそのAPIに制限する必要があります。依存関係は`requests`ライブラリのみで、`pip install -r scripts/requirements.txt`でインストールします。実行は`python3 scripts/channel_profile.py @handle`のように行い、`--videos N`で取得する直近の動画数(最大500)、`--json`でJSON出力、`--no-search`で検索フォールバック無効化などのオプションがあります。チャンネルの特定は、チャンネルID、`@handle`、`/user/`URLなどを自動判別し、該当しない場合は`search.list`でフォールバック検索を行います(`--no-search`で無効化可能)。 クォータ管理が組み込まれており、デフォルト実行で3ユニット(チャンネル情報1、投稿50件取得1、動画50件取得1)を消費します。レポートの最後に消費クォータを表示し、エラー時もクォータ消費状況を出力します。エラーコードは0(成功)、2(入力エラー)、3(クォータ超過)、4(APIエラー)、5(ネットワークエラー)で、それぞれ適切な対処方法が定義されています。 このスキルの重要なルールとして、公式APIのみを使用し、Webスクレイピングは行いません。キャッシュは実行中のみ保持し、APIレスポンスをディスクに保存しません。また、API統計情報は30日以上保存してはならない(ポリシーIII.E.4.b)とされています。推定収入はあくまでも広告収入のみを対象とし、スポンサーシップやメンバーシップ、アフィリエイト収入などは含まれず、実際のRPMはニッチや視聴者地域によって変動することを明記しています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/techhorizonlabs/gearlist/tree/HEAD/skills/youtube-channel-profile

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

YouTubeチャンネルプロファイル

scripts/channel_profile.py は、YouTube Data API v3を通じて公開チャンネルデータを読み取り、Markdownレポート(--jsonでJSON出力)を表示します。公式APIのみを使用し、YouTube Webページを読み込んだり、ディスクに書き込んだりすることはありません。

実行前の準備

  1. 人間がGoogle CloudプロジェクトでYouTube Data API v3を有効にし、そのAPIに制限されたAPIキーを作成する必要があります。
  2. キーは YOUTUBE_API_KEY 環境変数に格納します。プロンプト、ファイル、チャットに入力したり、印刷したりしないでください。設定されていない場合は停止し、人間に設定を依頼してください。他の場所でキーを探さないでください。
  3. 依存関係をインストールします: pip install -r scripts/requirements.txt(requests)。

実行

python3 scripts/channel_profile.py @handle
python3 scripts/channel_profile.py https://www.youtube.com/@handle --videos 100
python3 scripts/channel_profile.py UCxxxxxxxxxxxxxxxxxxxxxx --json

オプション: --videos N(取得する最近のアップロード数、デフォルト50、最大500)、--json、--no-search、--cpm-low と --cpm-high(デフォルト0.25と4.00)。

チャンネルの特定方法

  • チャンネルIDまたは /channel/UC... URL: channels.list を id で検索。
  • @handle または /@handle URL: channels.list を forHandle で検索。
  • /user/ URL: forUsername で検索。/c/ URLはハンドルとして試行します。
  • いずれも一致しない場合、search.list で最適な一致を検索し、レポートにその旨を記載します。タイトルとIDを確認してから使用してください。--no-search でフォールバックを無効にします。
  • 動画リンク、プレイリストリンク、YouTube以外のアドレスは拒否されます。チャンネルリンクを依頼してください。

クォータ

呼び出しコスト
channels.list1 ユニット
playlistItems.list50 アップロードごとに 1 ユニット
videos.list50 動画ごとに 1 ユニット
search.list(フォールバックのみ)独自バケットから 1 呼び出し

デフォルト実行は、10,000ユニット/日のデフォルトクォータのうち3ユニットを消費します。2026年6月1日以降、search.list は1日100回の独自バケットを持ちます。それ以前は、1回の検索でメインクォータから100ユニット消費したため、古いガイドでは100と記載されています。失敗した呼び出しもクォータを消費します。クォータは太平洋標準時の午前0時にリセットされます。すべてのレポートは消費したクォータを最後に表示します。

レポート内容

YouTubeから返されるままのデータ:

  • 登録者数(YouTubeにより有効数字3桁に切り捨て)。所有者が非表示にしている場合、レポートは「非表示」と表示し、推測は行いません。
  • チャンネルの総視聴数と公開動画数。
  • 各直近動画の視聴数、いいね数、コメント数。

スクリプトが導出するデータ(* 印付き):

  • アップロード頻度: 最新N件のアップロード間の中央日数、月間アップロード数((N - 1)ギャップ / 経過日数 x 30.44)、最終アップロードからの経過日数。
  • 直近動画の中央値および平均視聴数。ライブ配信と今後の配信は除外。
  • 傾向: 最新10件のアップロードの中央視聴数とその前10件の中央視聴数の比較。新しい動画は視聴数が集まる時間が短いことに注意。
  • エンゲージメント: 動画ごとに(いいね数 + コメント数)/ 視聴数、その中央値。いいねが非表示の動画は除外。コメントがオフの動画はコメント数を0としてカウント。
  • Shortsと長尺動画の割合(動画時間による)。これはヒューリスティックです: 180秒以下をShortsと判定します。APIにはShortsフラグがないためです。
  • 視聴数上位5件の直近動画。
  • 推定月間視聴数: 過去30日以内に公開された動画の現在の視聴数の合計。バックカタログの視聴数は含まれません。サンプルが30日前まで遡らない場合、レポートはその旨を表示し、より多くの--videosを要求します。このチェックは、アップロードプレイリストが通常通り最新順にリストされていることを前提としています。

YouTube APIポリシーIII.E.4.hに基づき、導出データはYouTube自身の合計値と並べて、YouTubeからのデータではないことを明記する必要があります。レポートは両方を行います。星印のついた数値を引用する際は、必ずその注記を保持してください。

収益計算方法

低  = 推定月間視聴数 / 1,000 x US$0.25
高  = 推定月間視聴数 / 1,000 x US$4.00

US$0.25~US$4.00はSocial Bladeが公開しているデフォルトのCPM範囲です(socialblade.com/youtube/calculator)。レポートは実際の数値を使用した計算式を出力します。これは広告収入のみです。スポンサーシップ、メンバーシップ、ショッピング、アフィリエイト収入、ファンファンディングは含まれません。実際のRPMはニッチ、視聴者国、フォーマットによって異なります。Shorts収入は異なる条件でプールされます。YouTubeパートナープログラムに参加していないチャンネルは広告収入を得られません。常に推定範囲として呼び、収入とは呼ばないでください。

エラー

終了コード意味対処方法
0レポートが出力されました
2不正な入力、キー不足、チャンネルが見つからない入力を修正するか、人間にキーまたは正しいリンクを依頼する
3クォータを使い果たした停止する。太平洋標準時の午前0時にリセットされることを人間に伝える。ループで再試行したりキーを切り替えたりしない
4その他のAPIエラー(無効なキー、APIが有効でないなど)メッセージを人間に表示する
5ネットワークエラー1回再試行し、その後報告する

エラーは失敗前に消費したクォータを出力します。すべてのメッセージとレポートは、印刷される前にキーが除去されます。

ルール

  • 公式APIのみを使用。不足を補うためにYouTubeページをスクレイピングしないでください。不足はそのまま報告してください。
  • 実行を超えてキャッシュしないでください。生のAPIレスポンスを保存しないでください。人間がレポートを保持する場合、API統計情報は30日を超えて保存してはなりません(ポリシーIII.E.4.b)。
  • 公開データのみ。視聴者属性は公開されていません: creator-audience スキルを参照してください。

2026年11月5日、YouTube Data APIリファレンス、クォータページ、改訂履歴、デベロッパーポリシーに照らして確認済み。スクリプトのテストはオフラインでフィクスチャに対して実行されます。ここではライブAPIに対して実行されていません。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル