엄민용

Youtube API: 재생목록 속 영상 제목가져오기 / 주의 사항, 구현 예정

var {google} =require('googleapis');
var service = google.youtube('v3');
const oauth2Service = require('./oauth2');
function getPlaylistData(oauth2Client, channelId) {
service.playlists.list({
auth: oauth2Client,
part: 'id, snippet',
fields: 'items(id, snippet(title, description, thumbnails(default(url))))',
channelId: channelId
}, function(err, response) {
if(err) {
console.log('The API returned an error: ' + err);
return;
}
var channels = response.data.items;
if (channels.length == 0){
console.log('No channel found.')
} else {
console.log(JSON.stringify(channels, null, 4));
}
});
}
oauth2Service.refreshClient()
.then((client) => {
getPlaylistData(client, 'UCx6jsZ02B4K3SECUrkgPyzg');
})
.catch(console.error);
\ No newline at end of file
const { google } = require("googleapis");
var service = google.youtube('v3');
const oauth2Service = require('./oauth2');
async function getPlaylistItemData(oauth2Client, playlistId) {
const res = await service.playlistItems.list({
auth: oauth2Client,
part: 'snippet',
fields: 'items(snippet(title))', //제목 정보만 필요함
maxResults: 50,
playlistId: playlistId
});
if (res.data.items == null || res.data.items.length === 0) {
throw new Error("데이터가 존재하지 않습니다.");
}
return res.data;
}
oauth2Service.refreshClient() //getPlaylistItemData(client, 재생목록의 주소) 예시로 슬픈노래 재생목록을 가져옴.
.then(client => getPlaylistItemData(client, 'PLJrlhDfEQCMD0SG8WCSbUjztMAYnVyuuY'))
.then(data => {
console.log(JSON.stringify(data.items, null, 4));
})
.catch(error => console.error);
\ No newline at end of file
api를 통해 얻어온 유튜브 영상 제목 모두 혹은 랜덤하게 한개 를 라인을 통해 사용자에게 보낼 예정
ex)
사용자: 슬픈 노래 추천해줘
챗봇: 재생목록에서 받아온 노래 n개 출력 or 랜덤하게 한개 출력.
\ No newline at end of file
oauth2.js 실행할 필요 없이 playlistbyid.js 만 실행하셔도 될 것 같습니다.
실행하기 이전에, 제가 package 파일을 다루는걸 몰라서
아직은 수동으로 npm install 을 진행해주셔야 할 것 같습니다.
oauth2.js 와 playlistbyid.js 에 있는 require 항목들을 모두 install 해주시고 진행해주시면 됩니다.
playlistbyid.js를 실행하시면 브라우저 창에서 구글 아이디를 통해 유튜브 api를 이용할 수 있도록 인증하는 절차를 거치게 됩니다.
확인되지 않은 앱이라고 뜨시면 고급으로 이동하여 안전하지 않은 페이지로 이동하시면 됩니다.
모든 인증이 끝나면 Completed 라는 메시지가 뜹니다.
재생목록의 주소를 입력하면 재생목록의 영상 제목을 출력하도록 하였습니다.
\ No newline at end of file