한줄공지
  • 등록된 공지내용이 없습니다.

NodeJS를 이용한 유튜브 음원(mp3) 다운로드

2022년 10월 10일
조회수 192
코멘트 2

목차

 이 포스팅에서는 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(&quot;youtube-mp3-downloader&quot;);

// YoutubeMp3Downloader 설정
var YD = new YoutubeMp3Downloader({
    &quot;ffmpegPath&quot;: &quot;/usr/local/bin/ffmpeg&quot;,  // FFmpeg 설치경로
    &quot;outputPath&quot;: &quot;/path/to/download&quot;,      // 다운로드 받은 파일을 저장할 폴더
    &quot;youtubeVideoQuality&quot;: &quot;highestaudio&quot;,  // 음원 퀄리티
    &quot;queueParallelism&quot;: 2,                  // 다운로드 병렬화
    &quot;progressTimeout&quot;: 2000,                // 다운로드 처리 인터벌(밀리초)
    &quot;allowWebm&quot;: false                      // WebM에서 다운로드 활성 여부
});
// MP3 다운로드 시작
YD.download(&quot;L4zauno7_HE&quot;);

YD.on(&quot;finished&quot;, function(err, data) {
    console.log(JSON.stringify(data));
});

YD.on(&quot;error&quot;, function(error) {
    console.log(error);
});

YD.on(&quot;progress&quot;, 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 $100 크레딧 선물 받기

 

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
포스트 통계
지금 보고있는 포스트의 통계 데이터를 확인 해 보세요.
  • 총 조회수
    192
  • 최근 30일 조회수
    8
연관 포스트
코멘트 작성
코멘트 (2)
코린이

좋은글 잘 보았습니다. 저도 테스트 해보니 생각보다 다운로드 시간이 많이 걸리는거 같은데 저만 그런걸까요?


Haru

15배 이상 빠른 다운로드 관련 내용도 곧 작성해드릴 예정입니다 ^^