【GAS】Youtubeの動画情報を取得する方法
IFTTTでyoutubeのチャンネル新着動画をGmailへ通知していたのですが、無料プランの制限が厳しくなったので、代わりにGASを使って通知する仕組みを作った際のメモです。
スプレッドシート自体は需要があれば、いずれ公開するかも。
事前準備(Google Advance Serviceを有効にする)
Google Apps Scriptのプロジェクトページで「リソース」>「Google の拡張サービス...」を選択して、「Youtube Data API v3」をOnにする。
概要
1.チャンネルIDを調べる
2.チャンネルIDからプレイリストIDを取得する
3.プレイリストIDから動画情報を取得する
1.チャンネルのIDを調べる
2.チャンネルIDからプレイリストIDを取得する
function getPlaylistId(channelId) {
const response = YouTube.Channels.list("contentDetails", {"id": channelId});
return response["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"];
}
レスポンスデータはこんな感じ。
3.プレイリストIDから動画情報を取得する
プレイリストIDから10件最新の動画情報を取得する場合の例。
function getPlaylistItems(playlistId) {
const playlistResponse = YouTube.PlaylistItems.list('snippet',{
playlistId: playlistId,
maxResults: 10
});
return playlistResponse.items;
}
レスポンスデータはこんな感じ。
Youtube Data APIの制限
この制限が適用されているはずだけど、どこで確認するのか分からなかった。
ただ、頻繁にAPIを叩いたり、大量にデータを取得しないほうが良さそうなのは確か。