Skip to content

Instantly share code, notes, and snippets.

@senyaitiya
Last active November 13, 2021 03:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save senyaitiya/044c2d2c855646db38c4928418891204 to your computer and use it in GitHub Desktop.
Save senyaitiya/044c2d2c855646db38c4928418891204 to your computer and use it in GitHub Desktop.
GASとYoutubeAPIで再生リスト内の動画情報を取得
function PlayList() {
//シート定義
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheetName1 = "シート1";
const srcSheet = ss.getSheetByName(sheetName1);
//データを貼り付けるシートをクリア
srcSheet.clear()
//APIキー
const key = "{YoutubeAPIキー}";
//再生リストID定義位置
const playlistID = "{再生リストID}";
//APIキーの呼び出し
const dataURL = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=49&playlistId=" + playlistID + "&key=" + key;
//レスポンス値にjson形式で挿入
const response = JSON.parse(UrlFetchApp.fetch(dataURL).getContentText());
//JSON分解
response.items.forEach((item, i) => {
//投稿日付
const publishedAt = item.snippet.publishedAt;
//動画タイトル
const title = item.snippet.title;
//動画説明
const description = item.snippet.description;
//動画ID
const videoId = item.snippet.resourceId.videoId;       
srcSheet.getRange(i + 1, 1).setValue(publishedAt);
srcSheet.getRange(i + 1, 2).setValue(title);
srcSheet.getRange(i + 1, 3).setValue(description);
if(videoId) {
srcSheet.getRange(i + 1, 4).setFormula('=HYPERLINK("https://www.youtube.com/watch?v=' + videoId + '")')
}
})
}
@JapaneseHiro
Copy link

いつも参考にさせていただいております。
このコードで実行すると"「snippet」が定義されていません"と出ます。
どうすれば宜しいでしょうか?

@senyaitiya
Copy link
Author

コメントありがとうございます。
現在こちらのAPIキーが失効中のため、確認できない状態です。
見直すと現在の仕様と合わない箇所もあるため、時間のある際に全体的に確認してみますね。
回答できずすみません。

@JapaneseHiro
Copy link

ご返信ありがとうございます(^^)

@senyaitiya
Copy link
Author

@JapaneseHiro 更新しました。お役に立てたら幸いです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment