유튜브 재생목록 영상의 제목 추출 – youtube data api

유튜브 재생목록 안에 있는 영상들의 제목을 추출하는 자바스크립트 코드입니다. Youtube Data Api를 사용합니다. 추출한 제목들을 엑셀 파일로 만드는 방법입니다.

유튜브 재생목록을 가져오기 위해 axios 라이브러리를 사용했으며, 엑셀로 파일을 만들기 위해 xlsx 라이브러리를 사용했습니다.

※ 재생목록 안에 있는 영상의 갯수가 50개 이상이라면 추가로 가져오기 위해 nextPageToken을 사용하고 while 반복문을 사용하였습니다.

const axios = require('axios');
const XLSX = require('xlsx');

async function getPlaylistVideos(playlistId) {
  try {
    const API_KEY = 'YOUR API KEY';
    const playlistId = '원하는 playlistID';
    const playlistUrl = `https://www.googleapis.com/youtube/v3/playlistItems`;

    let titles = [];
    let nextPageToken = null;

    //50개 이상의 영상을 추출하기 위해 반복문 사용
    while (true) {
      const response = await axios.get(playlistUrl, {
        params: {
          part: 'snippet',
          maxResults: 50, //1~50 사이이며 최대 50개.
          playlistId: playlistId,
          pageToken: nextPageToken, //50개 이상의 영상이 있으면 이 토큰이 있음
          key: API_KEY,
        },
      });
      nextPageToken = response.data.nextPageToken;
      const videoTitles = response.data.items.map((item) => item.snippet.title);
      titles = [...titles, ...videoTitles];

      //while 반복문을 돌다가 nextPageToken 값이 없으면 빠져나와라.
      if (!nextPageToken) {
        break;
      }
    }
    return titles;
  } catch (error) {
    console.error(error);
  }
}

//비동기 함수의 작업이 끝나면 엑셀 파일을 만들어서 내용을 넣어라.
getPlaylistVideos()
  .then((titles) => {
    const data = [['Title']];
    titles.forEach((title) => data.push([[title]]));
    const ws = XLSX.utils.aoa_to_sheet(data);
    const wb = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(wb, ws, 'Titles');
    XLSX.writeFile(wb, 'titles.xlsx');
  })
  .catch((error) => console.error(error));

결과 화면

playlistId로 PLmWosSc-0BYLhhlccKKfhPrfMFOy-v9_D 을 적용해서 실행해 본 화면입니다.

유튜브 재생목록 엑셀로
유튜브 재생목록 엑셀 파일로 만들기 결과화면

코드 주요 내용

  • YOUR_API_KEY본인이 소유한 실제 유튜브 api 키로 바꿔야 합니다.
  • playlistId는 제목을 가져오려고 하는 실제 YouTube 재생 목록의 ID입니다.
  • while 루프는 더 이상 nextPageToken이 없을 때까지 실행되며, 이는 모든 재생 목록을 가져왔음을 의미합니다.

유튜브 api key

자신의 유튜브 api key를 만드는 방법은 구글에서 검색해보면 매우 많이 나옵니다. 그것을 참고하시면 됩니다. youtube api는 Google cloud 에서 만듭니다. 아래의 링크에 발급 과정이 나오네요.

구글 (Youtube) API 사용 (사용설정, KEY 발급, 테스트 )

유튜브 재생목록 id

위의 그림과 같이 주소(URL)항목 중에서 list= 다음에 나오는 문자가 유튜브 playlist id 입니다. 참고로 ?v= 다음에 나오는 것은 현재 시청하고있는 영상의 id입니다.

node modules 삭제 편하게 하는 방법

답글 남기기

13 + 11 =