【GAS】Youtubeの動画情報を取得する方法

IFTTTでyoutubeのチャンネル新着動画をGmailへ通知していたのですが、無料プランの制限が厳しくなったので、代わりにGASを使って通知する仕組みを作った際のメモです。
スプレッドシート自体は需要があれば、いずれ公開するかも。

事前準備(Google Advance Serviceを有効にする)

Google Apps Scriptのプロジェクトページで「リソース」>「Google の拡張サービス...」を選択して、「Youtube Data API v3」をOnにする。

画像1

画像2

概要

1.チャンネルIDを調べる
2.チャンネルIDからプレイリストIDを取得する
3.プレイリストIDから動画情報を取得する

1.チャンネルのIDを調べる

画像3

2.チャンネルIDからプレイリストIDを取得する

function getPlaylistId(channelId) {
 const response = YouTube.Channels.list("contentDetails", {"id": channelId});
 
 return response["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"];
}

レスポンスデータはこんな感じ。

画像4

3.プレイリストIDから動画情報を取得する

プレイリストIDから10件最新の動画情報を取得する場合の例。

function getPlaylistItems(playlistId) {
 const playlistResponse = YouTube.PlaylistItems.list('snippet',{
   playlistId: playlistId,
   maxResults: 10
 });

 return playlistResponse.items;
}

レスポンスデータはこんな感じ。

画像5

Youtube Data APIの制限

この制限が適用されているはずだけど、どこで確認するのか分からなかった。
ただ、頻繁にAPIを叩いたり、大量にデータを取得しないほうが良さそうなのは確か。



いいなと思ったら応援しよう!