NodeJS를 이용한 유튜브 음원(mp3) 다운로드
목차
이 포스팅에서는 NodeJS와 youtube-mp3-downloader 라이브러리를 이용하여 youtube의 영상에서 음원(mp3)만 저장하는 프로그램을 만들어 보도록 하겠습니다.
1. Youtube mp3 downloader 라이브러리 설치
npm을 이용하여 youtube-mp3-downloader를 설치 합니다. 해당 라이브러리의 github주소는 참고 항목에 기재 해 두겠습니다.
$ npm install youtube-mp3-downloader --save
2. ffmpeg 설치
youtube-mp3-downloader 라이브러리를 사용하기 위해서는 영상에서 음원만 변환을 할 수 있도록 ffmpeg를 설치 해줘야 합니다. 본 항목에서는 윈도우와 Linux에서의 ffmpeg를 설치하는 방법에 대해서 알아보도록 하겠습니다.
2-1. Mac OS에서 ffmpeg 설치
여러분의 환경이 맥OS인경우 터미널에서 다음의 명령어로 ffmpeg를 설치 할 수 있습니다. 대략 설치까지 5분정도 걸립니다.
$ brew install ffmpeg</code>
</pre>
<p> </p>
<h2>2-2. Windows에서 ffmpeg 설치</h2>
<p>윈도우는 다음 링크의 문서에서 "<u><strong>환경 변수 편집에서 새로 만들기</strong></u>"까지를 참조 해 주세요.</p>
<p><a href="https://happist.com/577463/윈도우-ffmpeg-설치-및-사용-방법" target="_blank">https://happist.com/577463/윈도우-ffmpeg-설치-및-사용-방법</a></p>
<p> </p>
<h2>3. mp3 다운로드 NodeJS 코드</h2>
<p><code>index.js</code>파일을 만들어 다음 코드를 입력 합니다. </p>
<pre><code>var YoutubeMp3Downloader = require("youtube-mp3-downloader");
// YoutubeMp3Downloader 설정
var YD = new YoutubeMp3Downloader({
"ffmpegPath": "/usr/local/bin/ffmpeg", // FFmpeg 설치경로
"outputPath": "/path/to/download", // 다운로드 받은 파일을 저장할 폴더
"youtubeVideoQuality": "highestaudio", // 음원 퀄리티
"queueParallelism": 2, // 다운로드 병렬화
"progressTimeout": 2000, // 다운로드 처리 인터벌(밀리초)
"allowWebm": false // WebM에서 다운로드 활성 여부
});
// MP3 다운로드 시작
YD.download("L4zauno7_HE");
YD.on("finished", function(err, data) {
console.log(JSON.stringify(data));
});
YD.on("error", function(error) {
console.log(error);
});
YD.on("progress", function(progress) {
console.log(JSON.stringify(progress));
});
코드 설명을 보자면
- 1라인: youtube-mp3-downloader 임포트
- 5~10라인: Youtube mp3 downloader의 옵션.
ffmpegPath
와outputPath
만 설정 해주셔도 됩니다. 저는 맥OS로 brew를 통한 설치를 하였기에ffmpegPath
를 /usr/local/bin/ffmpeg로 설정 하였습니다. - 13라인: 다운로드 받을 Youtube의 영상 코드 입력
- 15~17라인: 프로그레스(progress)가 완료되었을 경우 호출되는 부분
- 19~20라인: 프로그레스(progress)중 에러가 발생한 경우 호출되는 부분
- 23~25라인: 프로그레스(progress) 진행 상황에 호출되는 부분
안정적이고 저렴한 가상 서버(VPS) 안내
안정적인 서버 호스팅을 찾고 계신가요? 지금 Vultr 호스팅을 한번 이용 해 보세요. 지금 보고 계신 HaruLogs 사이트도 Vultr에서 VPS 호스팅 하고 있습니다. 한국, 일본, 미국등 다양한 국가에 클릭 몇번으로 안정적이고 저렴한 VPS를 운영 할 수 있습니다.
아래 배너를 통해 회원 가입을 하시면 100달러의 무료 크레딧을 받을 수 있습니다. 100달러의 무료 크레딧은 Vultr의 최소 사양 VPS를 20대 동시 운영가능한 크레딧입니다.
Vultr 서비스 요약
- VPS
- 인스턴스
- AMD 또는 Intel High Performance 인스턴스 최저 $6 - 1vCPU, 1GB Memory, 2TB Bandwidth, 25GB NVMe
- 엣지
- 인스턴스
- Block Storage
- Object Storage (AWS S3 호환)
- Firewall
- Network
- Load Balancers
- Kubernetes
- Databases
좋은글 잘 보았습니다. 저도 테스트 해보니 생각보다 다운로드 시간이 많이 걸리는거 같은데 저만 그런걸까요?
15배 이상 빠른 다운로드 관련 내용도 곧 작성해드릴 예정입니다 ^^