node.js로 Youtube 다루기
Youtube가 무엇인지는 따로 설명하지 않아도 대부분의 사람들이 알것이라고 생각합니다.
이 youtube도 구글에서 OpenAPI를 제공하고 있어서 Node.js에서 활용을 할 수 가 있습니다. 동영상을 업로드하거나 업데이트하거나 또는 검색어를 통해 리스트를 받아볼 수도 있습니다.
이런기능을 잘 활용하면 유의미한 APP을 개발할 수 있습니다.
이번 포스팅에서는 간단하게 Youtube Data API
를 활용하여 원하는 검색어로 검색을 하는 일련의 과정을 작성하도록 하겠습니다.
0.1. Youtube API 키 발급받기
Youtube API를 사용하기 위해서는 먼저 구글에 해당 API를 사용하겠다고 등록을 하고 Youtube API 키를 발급받아야 합니다.
Youtube API뿐만아니라 OpenAPI를 사용하기 위해서는 대부분 API 키를 발급받아야 합니다. API키는 구글개발자센터(https://console.developers.google.com)에서 신청을 할 수 있습니다.
처음 API 사용 신청하는 것이라면 구글개발자센터에 접속하면 아래와 같은 화면을 볼 수 있습니다.
- 처음 접속 일 경우 바로 해당화면이 나오며 그렇지 않은경우 좌측에 있는 메뉴 중
라이브러리
메뉴 선택 Youtube Data API
항목 선택
API는 프로젝트단위로 발급이 되기 떄문에 프로젝트가 없는 경우는 프로젝트를 먼저 생성해야 합니다. 프로젝트는 상황에 맞게 복수개를 생성할 수 있습니다.
프로젝트 만들기
버튼 선택
프로젝트는 간단하게 프로젝트 이름만 만들면 됩니다.
프로젝트 이름
에 원하는 이름을 작성만들기
버튼 선택
프로젝트가 생성이 되었으면 Youtube Data API
를 사용하겠다는 의사표시를 합니다. 나중에 사용하지 않을 경우는 삭제를 하지 않고 사용중지를 할 수도 있습니다.
사용설정
링크 선택
사용설정이 되었으면 이제 사용자 인증정보를 만들어야 합니다. 사용자인증정보에서 설정하는 조건에 대해 API 키값이 생성됩니다.
사용자 인증정보 만들기
버튼 선택
사용자인증정보를 만들기 위해 몇가지 간단한 설정을 해야 합니다.
여기서는 node.js로 테스트하는 것이기 때문에 웹서버
항목을 선택했습니다. 웹브라우저나 , 안드로이드, IOS등 다양한 용도로 설정을 할 수 있습니다.
Youtube Data API v3
을 선택웹서버(예:node.js,Tomcat)
을 선택완료
버튼 클릭 (이미지상에는 버튼이 가려져 있네요 --;)
드디어 API키가 생성되었습니다. 해당 키값을 기억했다가 사용하면 됩니다.
API키 값
확인완료
버튼 선택
내 계정의 프로젝트명
에 해당하는 모든 API키값은 좌측 메뉴의 사용자 인증정보
메뉴에서 확인할 수 있습니다.
사용자 인증정보
메뉴 선택API키 값
확인
0.2. youtube-node 모듈 설치
node.js에서 유튜브 API를 사용할 수 있게 해주는 모듈을 설치합니다.
npm install youtube-node
0.3. Youtube 검색하기
Youtube API 키를 발급받았으면 Node.js 프로그램으로 특정 검색어의 검색결과를 리스트 하도록 하겠습니다.
var Youtube = require('youtube-node');
var youtube = new Youtube();
var word = '강아지'; // 검색어 지정
var limit = 10; // 출력 갯수
youtube.setKey('발급받은 API키 입력'); // API 키 입력
//// 검색 옵션 시작
youtube.addParam('order', 'rating'); // 평점 순으로 정렬
youtube.addParam('type', 'video'); // 타입 지정
youtube.addParam('videoLicense', 'creativeCommon'); // 크리에이티브 커먼즈 아이템만 불러옴
//// 검색 옵션 끝
youtube.search(word, limit, function (err, result) { // 검색 실행
if (err) { console.log(err); return; } // 에러일 경우 에러공지하고 빠져나감
console.log(JSON.stringify(result, null, 2)); // 받아온 전체 리스트 출력
var items = result["items"]; // 결과 중 items 항목만 가져옴
for (var i in items) {
var it = items[i];
var title = it["snippet"]["title"];
var video_id = it["id"]["videoId"];
var url = "https://www.youtube.com/watch?v=" + video_id;
console.log("제목 : " + title);
console.log("URL : " + url);
console.log("-----------");
}
});
위와같이 작성한 프로그램을 cmd
또는 shell
화면에서 아래와 같이 실행 시킵니다.
$ node youtube-test.js
그러면 아래와같이 리스트가 나오면 정상입니다.
0.4. Youtube API 검색 옵션
Youtube API 검색 옵션은 youtube.addParam('옵션명', '값')
형태로 지정을 합니다.
youtube.addParam('order', 'rating'); // 평점 순으로 정렬
youtube.addParam('type', 'video'); // 타입 지정
youtube.addParam('videoLicense', 'creativeCommon'); // 크리에이티브 커먼즈 아이템만 불러옴
0.4.1. 검색 옵션
아래와 같은 대표적인 검색옵션이 있습니다.
옵션 | 값 | 설명 |
---|---|---|
order | date, rating, relevance, title, videoCount, viewCount | 정렬 조건 지정 |
regionCode | kr, jp, us... | 국가 지정 |
safeSearch | none, moderate, strict | 제한된 컨텐츠를 포함할지 여부 지정 |
type | channel, playlist, video | 검색 대상 유형 지정 |
videoDuration | any, long, medium, short | 검색 동영상의 길이 지정 |
videoLicense | any, creativeCommon, youtube | 검색 동영상의 라이선스 지정 |
Comments