엄민용

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

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