Open1

▶️ YouTube API

hzuikahzuika

YouTube Data API を使ってチャンネル,動画,プレイリストの情報を取得する

使用する API

  • Videos API
    • ビデオ ID から動画情報を取得します.
  • Channels API
    • チャンネル ID からチャンネル情報を取得します.
  • Playlists API
    • チャンネル ID からプレイリストの情報を取得します.
  • PlaylistItems API
    • チャンネル ID からプレイリスト内の動画情報を取得します.

データ取得

チャンネル情報の取得

チャンネル ID の取得

YouTube のチャンネルページの URL から チャンネル ID を取得します.
チャンネルの URL は下記の形式になっています.

https://www.youtube.com/channel/{UCから始まる24文字のチャンネル ID}

カスタム URL から チャンネル ID の取得

カスタム URL (https://www.youtube.com/c/{カスタムURL}/) を持つチャンネルの場合は,Chrome DevTools の Console タブで,property='og:url'を満たすmetaタグのcontentを取得します.

<meta property="og:url" content="https://www.youtube.com/channel/{チャンネルID}">
document.querySelector("meta[property='og:url']").content;
// https://www.youtube.com/channel/{UCから始まる24文字のチャンネル ID}

https://www.youtube.com/c/{カスタムURL}/featured の URL の場合だと,動画の URL が取得されてしまうので注意が必要です.

Channels API の使用

Channels API を使用してチャンネル情報を取得します.

存在しないチャンネル ID の場合も成功し,空のデータが返ってきます.

取得できる主要な情報を以下に示します.

  • items の配列に下記の情報が含まれます
    • id チャンネル ID
    • snippet
      • title チャンネル名
      • description チャンネルの説明
      • customUrl カスタム URL (存在する場合)
      • publishedAt チャンネル開設日
      • thumbnails.high.url サムネイル画像 (800 x 800 px) の URL
    • statistics
      • viewCount 視聴回数
      • subscriberCount 登録者数
      • videoCount 動画数
    • brandingSettings
      • image
        • bannerExternalUrl バナー画像の URL (存在する場合)

Channels API のパラメータには下記の値を格納します.

  • idには最大 50 個のチャンネル ID を格納することができます.
  • maxResults には最大個数の 50 を指定します.
  • partには下記のパラメータを格納できます.
    • id
    • snippet
    • contentDetails
    • statistics
    • topicDetails
    • status
    • brandingSettings
    • contentOwnerDetails
    • localizations

チャンネルにアップロードされた動画情報の取得

チャンネルにアップロードされた,非公開,限定公開以外の動画情報を取得します.

チャンネル ID の取得

チャンネル ID を取得します.(上記を参照)

PlaylistItems API の使用

チャンネル ID のUCプレフィックスをUUに変えます.
この ID が,チャンネルにアップロードされた動画を示すプレイリスト ID になります.

https://www.youtube.com/playlist?list={UUで始まるプレイリスト ID} で確認できます.

PlaylistItems API を使用してチャンネル情報を取得します.

動画数が 0 個のチャンネルの場合,PlaylistItems API を使用するとエラーになるので,Channels API のvideoCountでチェックしたほうがよいと思います.

取得できる主要な情報を以下に示します.

  • items の配列に下記の情報が含まれます
    • contentDetails
      • videoId ビデオ ID
      • videoPublishedAt 動画のアップロード時刻
    • snippet
      • title 動画タイトル
      • description 動画概要
      • thumbnails.high.url 動画のサムネイル画像の URL
      • videoOwnerChannelId 動画をアップロードしたチャンネルの ID
      • videoOwnerChannelTitle 動画をアップロードしたチャンネルの名前
      • playlistId 動画が含まれているプレイリストの ID
      • channelId プレイリストを作成したチャンネルの ID
      • channelTitle プレイリストを作成したチャンネルの名前
  • pageInfo
    • totalResults 動画の合計数
  • nextPageToken 1 回の API で全てのデータを取得できない場合に,次の PlaylistItems API の pageToken パラメータに入れる値

プレイリストを作成したチャンネルと,動画をアップロードしたチャンネルが異なる場合は注意が必要です.

PlaylistItems API のパラメータには下記の値を格納します.

  • playlistIdUUから始まるプレイリスト ID を格納します.
  • maxResults に最大個数の 50 を指定します.
  • part には,下記のパラメータを格納できます.
    • id
    • snippet
    • status
    • contentDetails
  • pageToken は,2 回目以降の PlaylistItems API 実行時に,前の実行結果の nextPageToken を入れます.

Videos API の使用

PlaylistItems API のデータからビデオ ID を取得します.

https://www.youtube.com/watch?v={ビデオ ID} で確認できます

Videos API を使用してチャンネル情報を取得します.

存在しないビデオ ID の場合も成功し,空のデータが返ってきます.

取得できる主要な情報を以下に示します.

  • items の配列に下記の情報が含まれます
    • id ビデオ ID
    • snippet
      • title 動画タイトル
      • description 動画概要
      • thumbnails.high.url 動画のサムネイル画像の URL
      • channelId チャンネル ID
      • channelTitle チャンネル名
      • publishedAt 動画のアップロード時刻
      • liveBroadcastContent
        • "live" の場合は配信中
        • "upcoming" の場合は配信予定
        • "none" の場合はアーカイブ
    • liveStreamingDetails
      • actualStartTime 配信,プレミア公開の開始時刻
      • actualEndTime 配信,プレミア公開の終了時刻
    • contentDetails
      • duration 動画時間
    • statistics
      • viewCount 視聴回数
      • likeCount 高評価数
      • commentCount コメント数

Videos API のパラメータには下記の値を格納します.

  • idには最大 50 個のビデオ ID を格納することができます.
  • maxResults に最大個数の 50 を指定します.
  • partには下記のパラメータを格納できます.
    • id
    • snippet
    • contentDetails
    • status
    • statistics
    • player
    • topicDetails
    • recordingDetails
    • liveStreamingDetails
    • localizations

チャンネルが作成したプレイリスト情報の取得

Playlists API の使用

チャンネル ID を取得します.

Playlists API を使用してプレイリスト情報を取得します.

取得できる主要な情報を以下に示します.

  • items の配列に下記の情報が含まれます
    • id プレイリスト ID
    • snippet
      • channelId チャンネル ID
      • channelTitle チャンネル名
      • description チャンネルの説明
      • itemCount 動画数
      • publishedAt 作成日時
      • thumbnails.high.url プレイリストのサムネイル画像の URL
      • title プレイリストのタイトル
  • pageInfo
    • totalResults プレイリストの合計数
  • nextPageToken 1 回の API で全てのデータを取得できない場合に,次の Playlists API の pageToken パラメータに入れる値

Playlists API のパラメータには下記の値を格納します.

  • channelId にはチャンネル ID を格納します.
  • maxResults に最大個数の 50 を指定します.
  • part には下記のパラメータを格納できます.
    • id
    • snippet
    • status
    • contentDetails
    • player
    • localizations
  • pageToken は,2 回目以降の Playlists API 実行時に,前の実行結果の nextPageToken を入れます.

PlaylistItems API の使用

PlaylistItems API を実行します.
palylistId に Playlist API で取得したプレイリスト ID を格納します.

プレイリストに含まれる動画を取得できます.