GASでYoutube Data APIを使用してYoutubeチャンネル・動画のデータを取得【Google Apps Script】
API「YouTube Data API v3」を使用
※1日当たりのリクエスト数等制限があります
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
〇チャンネル情報を順番に取得するケース
function myFunction() {
//YouTube.Channels → YouTube チャンネルに関する情報が格納
listメソッドでリクエスト条件に一致する情報を取得します
※snippetはチャンネルのタイトルや説明などの基本的な詳細情報で
statisticsはチャンネルの再生回数などの統計情報です
その2つを指定し、その後idを指定してチャンネルを指定します
let 結果 = YouTube.Channels.list("snippet,statistics", { id:"UCHP76ZuS_0luJpGErA1JF-Q" });
//チャンネルのタイトル
Logger.log(結果.items[0].snippet.title);
//チャンネルの作成日時
Logger.log(結果.items[0].snippet.publishedAt);
//チャンネルの説明
Logger.log(結果.items[0].snippet.description);
//チャンネルの登録者数
Logger.log(結果.items[0].statistics.subscriberCount);
//チャンネルの公開動画の数
Logger.log(結果.items[0].statistics.videoCount);
//チャンネルの再生回数
Logger.log(結果.items[0].statistics.viewCount);
}
〇セルから順番にIDを取得してチャンネル情報を配列に入れセルに入れるケース
function myFunction() {
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spreadsheet.getSheetByName("data");
for(i = 2; i < 7; i++){
let 配列 = [];
let channelid = sheet.getRange(1,i).getValue();
//YouTube.Channels.list → YouTube チャンネルに関する情報が格納
//※「snippet」には、チャンネル情報(チャンネルのタイトル、登録日、説明文、アバター画像のサムネイル)
//※「statistics」には、チャンネル全体でのコメント数、登録者数、動画数、再生回数
let 結果 = YouTube.Channels.list("snippet,statistics", { id:channelid });
//チャンネルの情報のタイトル(チャンネル名)
配列.push([結果.items[0].snippet.title]);
//チャンネルの情報の登録日(チャンネル登録日)
配列.push([結果.items[0].snippet.publishedAt]);
//チャンネルの情報の説明文(チャンネル説明文)
配列.push([結果.items[0].snippet.description]);
//詳細情報のチャンネル登録数
配列.push([結果.items[0].statistics.subscriberCount]);
//詳細情報の動画数
配列.push([結果.items[0].statistics.videoCount]);
//詳細情報の再生数
配列.push([結果.items[0].statistics.viewCount]);
//配列を指定したセルに入れる
sheet.getRange(2,i,配列.length,1).setValues(配列);
}
}
〇動画IDから動画データを取得するケース
function videostest() {
//YouTube.Channels.list → YouTube チャンネルに関する情報が格納
//※「snippet」には、チャンネル情報(チャンネルのタイトル、登録日、説明文、アバター画像のサムネイル)
//※「statistics」には、チャンネル全体でのコメント数、登録者数、動画数、再生回数
let 結果 = YouTube.Videos.list("snippet,statistics", { id:"3WW6RMmx-_I" });
//動画のタイトル
Logger.log(結果.items[0].snippet.title);
//動画の公開日
Logger.log(結果.items[0].snippet.publishedAt);
//動画の説明文
Logger.log(結果.items[0].snippet.description);
//動画の再生数
Logger.log(結果.items[0].statistics.viewCount);
//動画のコメント数
Logger.log(結果.items[0].statistics.commentCount);
}