こちらの記事の続きです。
OAuthクライアントとトークン情報を準備
- client_secret.json
- token.json
の二つを準備しておきます。
再生リストから動画の検索
色々なAPIがあっていまいちわからなかったのですが、ChatGPTに聞いて出てきたサンプルが役立ちました。
playlistItemsのメソッドが該当する模様です。
ドキュメントを調べる -> サンプルではなく、ChatGPTに聞く -> ドキュメントを見るという流れ、効率的かも
再生リストのIDを指定して、リスト内の動画を検索
'use strict';
const fs = require('fs');
const {google} = require('googleapis');
const googleAuth = () => {
const CREDENTIALS_PATH = 'client_secret.json';
const TOKEN_PATH = 'token.json';
const credentials = JSON.parse(fs.readFileSync(CREDENTIALS_PATH, 'utf8'));
const token = JSON.parse(fs.readFileSync(TOKEN_PATH, 'utf8'));
const {client_secret, client_id, redirect_uris} = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]);
oAuth2Client.setCredentials(token);
return oAuth2Client;
};
//↑ここまでは認証で共通 ↓ここから
(async () => {
const auth = googleAuth();
const youtube = google.youtube({version: 'v3', auth});
// console.log(youtube.channels)
try {
const res = await youtube.playlistItems.list({
part: 'snippet',
maxResults: 50, // 一度に取得する最大動画数
playlistId: `再生リストのID`
});
const videos = res.data.items.map(item => {
return {
title: item.snippet.title,
videoId: item.snippet.resourceId.videoId
};
});
console.log(videos);
} catch (error) {
console.log('The API returned an error: ' + error);
}
})();
結果
アップロードして再生リストに追加してある動画が取得できました。