▶️ YouTube API

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 のパラメータには下記の値を格納します.
-
playlistId
にUU
から始まるプレイリスト 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 を格納します.
プレイリストに含まれる動画を取得できます.