Youtube API で動画を検索して再生時間も取得する方法
前ブログからの引き継ぎと加筆。
本題
検索と再生時間の取得を一発でしたかったけど、それはできない模様。
詳細は以下のリンク。
検索のAPIと動画の詳細情報を取得するAPIが異なるため、
最低でも検索+詳細取得の2回、APIを呼び出す必要がある。
以下、GASでのサンプルコード。
function myYoutubeDuration() { var url = 'https://www.googleapis.com/youtube/v3/search'; var token = 'APIKey'; url += '?key='+token; url += '&q=ppap'; url += '&part=id'; url += '&type=video'; var json = ''; var vid = []; json = UrlFetchApp.fetch(url); json = JSON.parse(json.getContentText()); json.items.forEach(function(item) { vid.push(item.id.videoId); }); url = 'https://www.googleapis.com/youtube/v3/videos'; url += '?key='+token; url += '&part=snippet,contentDetails'; url += '&id='+vid.join(','); json = UrlFetchApp.fetch(url); json = JSON.parse(json.getContentText()); json.items.forEach(function(item) { Logger.log(item.snippet.title); Logger.log(item.id); Logger.log(item.contentDetails.duration); }); }