YouTubeに関するデータを取得する方法はいくつか存在します。代表的なものは公式に提供されているAPI(Data / Live Streaming / Analytics / Reporting / Captions)ですが、非公式ながら広く利用されているライブラリやツール(例:pytchat、youtube-transcript-api、Whisper、yt-dlp など)もあります。
本ページでは、「第三者でも取得できる公開データ」「チャンネル所有者のみが取得できるデータ」「現状の公式APIでは取得できないデータ」を整理し、さらに非公式ライブラリで補える領域についても紹介します。個別の実装手順は別記事で解説しますので、必要に応じてリンクからご覧ください。
公式APIの全体像
- YouTube Data API v3:動画・チャンネル・コメントなどの基本情報や検索
- YouTube Live Streaming API:ライブ配信の作成・管理、チャット取得
- YouTube Analytics API:視聴回数・維持率・視聴者属性などの集計データ
- YouTube Reporting API:広告・収益を含む大規模レポート(CSV形式)
- YouTube Captions API:自分の動画の字幕一覧・ダウンロード
いずれもAPIキーやOAuth認証が必要で、1日1万ユニットのクォータ制限があります。視聴者の個人情報(メールアドレスや視聴履歴)は取得禁止です。
第三者でも取得できるデータ(公式API)
項目 | 取得方法 / API | 備考 |
---|---|---|
動画・チャンネルの基本情報 | videos.list , channels.list | タイトル・説明・再生回数・登録者数など |
公開コメント本文 | commentThreads.list , comments.list | 投稿者チャンネルIDと表示名まで。メール等は不可 |
動画カテゴリ(大分類) | videoCategories.list | 音楽/ゲーム等の大分類カテゴリ |
ライブ配信の判別 | videos.list(part=liveStreamingDetails) | scheduled/actualStart/EndTimeで判別 |
スーパーチャット | liveChatMessages.list (superChatDetails ) | 金額・通貨・コメント・送信者チャンネルID |
チャンネル所有者のみ取得できるデータ(公式API)
項目 | 取得方法 / API | 備考 |
---|---|---|
非公開動画や自分のプレイリスト | Data API(OAuth) | 権限がある動画のみ |
動画アップロードや管理 | videos.insert ほか | 書き込み操作は要認可 |
自分の動画の字幕ダウンロード | captions.download | 他人の動画は不可 |
視聴者属性・流入元・維持率 | Analytics API | 自チャンネル限定。維持率カーブあり |
収益・広告レポート | Reporting API | 定期CSVで一括取得 |
縦横の判定 | videos.list(part=fileDetails) | widthPixels/heightPixelsで正確に判定(自分の動画のみ) |
現状のAPIで取得できないもの
- 他人の動画の字幕や自動生成キャプション(公式APIでは不可)
- 他人の動画のチャットリプレイ(ライブ中は取得可能だが、アーカイブは不可)
- 「シークバーの山(キーモーメント)」元データ
- YouTubeショート専用の公式フラグ(縦型+3分以下などで推定可能)
非公式ライブラリで補える情報
公式APIでは取得できない情報も、非公式ライブラリを用いることで取得できる場合があります。ただし、YouTube内部仕様に依存しているため将来的に動作しなくなる可能性や、利用規約に抵触するリスクがある点には十分注意してください。
字幕・文字起こし(他人の動画)
youtube-transcript-api
:動画IDを指定して自動生成字幕やアップロード字幕を取得可能pytube
/yt-dlp
:字幕トラックURLを解析して取得- 注意:商用や再配布は規約違反の恐れあり。研究・個人利用の範囲で
チャットリプレイ
pytchat
:アーカイブ配信のチャットリプレイを取得可能(公式APIでは不可)- SuperChat情報(通貨・金額・色)も取得可能
- 注意:非公式のため将来の互換性は保証されない
音声→文字起こし
Whisper
:動画音声をテキスト化、多言語対応- 利用には動画ファイルのダウンロードが必要 → 規約を要確認
縦横の判定(第三者動画)
yt-dlp
:動画のフォーマット情報からwidth/heightを取得し縦横比を判定- Shorts推定(縦型+180秒以下)にも活用可能
- 注意:非公式利用のため規約順守に配慮
具体的な実装方法はこちら
YouTube Data API v3入門|APIキー発行と最初のコード実行
YouTube Data APIでチャンネルの動画一覧を取得する方法【Pythonサンプル+実行結果付き】
pytchatでアーカイブ配信のチャットを取得する方法【Pythonサンプル+実行結果付き】