YouTubeの情報を取得する方法まとめ【公式APIと非公式ライブラリ】

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.listsuperChatDetails金額・通貨・コメント・送信者チャンネル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サンプル+実行結果付き】

youtube-transcript-apiで字幕を取得する方法【Pythonサンプル+実行結果付き】

Whisperで文字起こしして要約する方法【Pythonサンプル+実行結果付き】

2025年9月29日