Node js로 유튜브 동영상을 다운받아보자.
항상 Nodejs 모듈을 배울 때 가장 좋은 것은 공식 홈페이지의 설명서를 제대로 읽어보는 것, 따라해보는 것이다.
Google에 youtube dl nodejs 라고 검색한뒤
이 모듈의 npm 사이트에 들어가자.
Youtube-dl??
참고로 youtube-dl은
youtube video의 url을 이용해 youtube의 video를 내 컴퓨터에 스트림을 이용해 다운받을 수 있게 해주는 모듈이다.
nodejs 에서 쓸 수도 있고 그냥 command line 응용프로그램으로 쓸 수도 있다.
설치법이 나와있다.
자기 프로젝트의 디렉토리로 가서
콘솔에서 npm install youtube-dl을 입력해주자.
무사히 설치가 되었다.
[ Windows 유저의 경우 이따가 js파일 node로 실행하면 오류남 ]
https://stackoverflow.com/questions/49770196/nodejs-youtube-spawn-unknown-error/49771147#49771147
에 아주 잘 나와있으니 참고!
이제 이 모듈의 사용법을 읽어보자.
youtube-dl 모듈 초간단사용법
▲ 공식홈페이지에 나온 사용법
line 3 :
var video = youtubedl(url, [옵션 args로서의 배열]
, child_process를 위한 추가적 인자(안줘도 되더라고요.)
);
로 해당 url에 대한 비디오 및 모듈을 거친 설정들이 video변수에 담긴다.
info이벤트는 비디오 다운로드가 시작되면 호출된답니다.
그리고 video.pipe(출력스트림)을 통해 스트림을 연결하여 다운로드한다!
아주 간단!
예시로 동영상을 하나 다운받아보겠다.
youtube에 "request 모듈"이라 친 뒤 한 영상의 링크를 따온다. 동영상에서 우클릭하면 됨.
실행결과 동영상이 성공적으로 다운받아졌다.
여기까진 초간단 사용법이다.
다음은 추가적으로 format 설정하는 법을 알아보겠다.
youtube-dl프로그램을 nodejs에서 쓰기위해 매핑한 npm사이트가 아닌
youtube-dl프로그램 자체의 github페이지 에서FORMAT SELECTION란에 가보면 대충은 나와있다.
아마 쓸만한 거는 best 밖에 없을듯.
그냥 숫자로 22나 18이렇게 주어도됨. 22는 고화질 18은 저화질인듯.
(https://unix.stackexchange.com/questions/272868/download-only-format-mp4-on-youtube-dl
이 곳에 한 동영상에 대한 available format 예제가 나와있는데 nodejs로 매핑한 모듈로 볼 수 있는 게 아니라 command line 프로그램으로 실행해서 -F url 옵션을 줘야 볼 수 있는 것 같음.)
아까 그 동영상을 예시로 -F옵션을 실행해봤다.
( 참고로 command line 응용프로그램으로서의 youtube-dl은
자기가 youtube-dl모듈 설치했을 때, 자기 모듈이 설치되는 폴더/youtube/bin 에 설치되어있다. )
보통 18이나 22쓰면 되더라구요.
이상 대략적인 youtube-dl 모듈의 사용법을 알아보았다.
아래 예시는 Youtube Data API와 youtube-dl을 이용해 플레이리스트에 있는 모든 영상을 자동으로 다운받는 예제예요.
'Node.js' 카테고리의 다른 글
프론트엔드 예제 블로그 만들기 (0) | 2019.01.05 |
---|---|
[nodejs] 학식 카톡봇 예제 (0) | 2018.10.06 |
nodejs request 모듈 기본 및 pipe 메소드에 대해 (0) | 2018.09.22 |
유튜브 API 사용법 - 동영상 검색하기 (8) | 2018.08.20 |
Socket io, node js 를 이용한 채팅 사이트 만들기 예시 (0) | 2018.06.10 |