커맨드라인 유튜브 다운로더 youtube-dl - 4K 영상, MP3까지 다운로드 가능

크롬 확장 프로그램으로 유튜브 영상을 다운로드 받는 방법이 여전히 가장 쉽고 빠른 방법이지만, 대부분 확장 프로그램이 기능적으로 이런 저런 제한이 있습니다.

특히, 웹브라우저 확장 프로그램의 경우 HD(720p) 영상까지만 다운로드 받을 수 있는 경우가 많습니다.

기능적으로 쓸만한 프로그램이나 확장은 유료이기 때문에 불편함이 이래 저래 조금씩 있습니다.

커맨드라인 프로그램이지만, 다운로드 가능한 모든 유튜브 영상이나 MP3 파일을 다운로드 받을 수 있는 프로그램으로 "youtube-dl" 이 있습니다.

선택의 여지가 별로 없는 다른 유튜브 다운로드 프로그램들과 달리 거의 무제한의 옵션 설정이 가능하기 때문에 기존 유튜브 다운로드 프로그램들의 기능 제약이 불만이라면 "youtube-dl"로 원하는 영상을 다운로드 할 수 있습니다.

"youtube-dl"로 다운로드 할 수 없는 유튜브 영상은 동영상 캡쳐 프로그램이나 캡쳐 보드 같은 다른 종류의 영상 저장 방법을 사용해야 합니다.

맥OS와 리눅스도 지원하며 사용 방법은 동일하고, 패키지 관리자를 사용해 셸에서 설치 과정을 진행하면 됩니다.

여기서는 윈도우10을 기준으로 설명합니다.

1. youtube-dl 과 ffmpeg 다운로드 및 설치

현재 이 프로그램이 법정 분쟁에 휘말려서 깃헙을 통한 다운로드 경로가 막혀 있습니다.

다음 경로에서 직접 다운로드 할 수 있습니다.

yt-dl.org/download.html

두 번째 줄의 "Windows exe" 링크를 클릭하면 윈도우 용 실행 파일을 다운로드 받을 수 있습니다.

설치 파일이 아니라 실행 가능한 프로그램입니다.

그 옆의 재 배포 패키지인 "Microsoft Visual C++ 2010 Redistributable Package (x86)" 가 설치되어 있어야 "youtube-dl"을 실행할 수 있으므로, 설치되어 있지 않으면 다운로드 해서 설치해야 합니다.

yotube-dl 다운로드

그리고 영상(오디오 없는)과 오디오를 하나의 영상 파일로 합치거나 영상 인코딩 코덱을 변경하는 프로그램인 "ffmpeg" 프로그램을 다운로드 받아 설치해야 합니다.

유튜브는 영상과 오디오가 하나로 된 영상은 720p 만 다운로드가 가능하기 때문에 리소스별로 다운로드 받아 하나로 합치기 위해서 ffmpeg 프로그램이 필요합니다.

ffmpeg.org/

사이트에서 "Download" 버튼을 클릭해 운영체제에 맞는 파일을 다운로드 합니다.

또는 깃헙에서 최신 빌드 압축 파일을 다운로드 받는 것을 추천합니다.

github.com/BtbN/FFmpeg-Builds/releases

다운로드 받은 파일을 압축을 푼 후 압축 푼 폴더 안의 "bin" 폴더 경로를 다음 방법을 따라 윈도우10 경로에 추가해야 합니다.

2. 윈도우10 경로 설정하기

"youtube-dl" 은 별도 설치 프로그램이 없기 때문에 실행 파일이 있는 경로에서 실행하거나, 윈도우10 경로를 추가해야 다른 폴더에 있는 "youtube-dl" 을 실행해 유튜브 영상 다운로드를 할 수 있습니다.

탐색기 화면에서 "내 컴퓨터" 의 컨텍스트 메뉴를 연 후 "속성" 을 선택합니다.

왼쪽 메뉴에서 "고급 시스템 설정" 선택 > 시스템 속성 대화상자의 "고급" 탭 선택 > 하단 "환경 변수" 버튼 클릭 > "시스템 변수" 섹션 목록에서 "Path" 선택 > 하단 "편집" 버튼 클릭 > "환경 변수 편집" 대화상자 오른쪽의 "새로 만들기" 버튼 클릭

을 해서 경로를 추가하는 대화상자를 엽니다.

"환경 변수 편집" 목록 맨 끝에 새 입력 행이 활성화 되고 입력 커서가 표시되면 "youtube-dl" 실행 파일이 위치한 경로를 입력한 후 "확인"을 눌러 저장합니다.

환경 변수 편집 화면에서 경로 추가

새 도스 커맨드 창, 또는 파워셸 창을 연 후 "path" 명령어를 입력하면 현재 경로 정보를 볼 수 있습니다. 앞서 추가한 경로가 보이지 않을 경우 

커맨드 라인에 

taskkill /f /im explorer.exe

을 입력해 탐색기를 강제 종료한 후

explorer.exe

를 입력해 재 실행합니다.

이후 도스 커맨드 창/파워셸 창을 닫았다 다시 열면 경로가 추가됩니다. 반드시 커맨드 창/파워셸 창을 닫았다 열어야 갱신됩니다. 또는, 윈도우10을 재부팅하면 됩니다.

커맨드 라인에 "youtube-dl" 을 입력해 "youtube-dl"이 다음과 같이 실행되는지 확인합니다.

이제 "youtube-dl" 로 유튜브 동영상을 다운로드 할 준비가 되었습니다.

ffmpeg도 같은 방법으로 경로를 반드시 추가해야 합니다.

3. 다운로드 가능한 리소스 정보 얻기

"youtube-dl"은 옵션 항목이 엄청나게 많습니다.

그만큼 세세한 설정이 가능하지만, 실제 사용하는 기능만들만 알아봅니다.

먼저 다운로드 받고 싶은 유튜브 동영상의 경로를 얻습니다.

커맨드 라인에 다음과 같이 입력하면, 다운로드 가능한 해당 동영상의 모든 정보가 표시됩니다.

유튜브 동영상의 리소스 정보를 보여주는 옵션은 "-F" 입니다.

> youtube-dl -F 복사한유튜브공유링크

유튜브 리소스 정보

"youtube-dl" 이 보여주는 이 리소스 목록에 대한 기초 이해를 먼저 해야 합니다.

"youtube-dl" 은 유튜브로 다운로드 할 수 있는 모든 리소스에 대한 정보를 표시합니다.

오른쪽에 다운로드 가능한 리소스에 대한 설명이 다 붙어 있습니다.

오디오와 영상이 하나로 되어있는 영상도 있지만, 대부분은 오디오와 영상이 따로 구분되어 있습니다. "video only" 라고 된 것은 영상만이며, "audio only" 라고 표시된 것은 오디오만 품질 별로 표시한 것입니다.

"video only", "audio only" 표시가 없는 맨밑의 2개는 영상과 오디오가 함께 있는 것입니다.

그리고 목록 왼쪽에는 숫자 번호가 있습니다. 이 번호가 해당 리소스의 키값이고, 다운로드 받을 영상과 오디오를 선택하는 고유한 이름이 됩니다. "youtube-dl" 에서는 이 숫자를 포맷 코드(format code) 라고 합니다.

"youtube-dl"로 영상을 다운로드 할 때 이 포맷 코드를 파라메터로 추가로 표시해서 원하는 리소스를 다운로드 받는다고 이해하면 됩니다.

유튜브 동영상 다운로드 기능을 제공하는 대부분의 확장 프로그램들은 단순히 영상 스트림을 읽어서 파일로 저장하는 기능만 구현 가능하기 때문에 영상과 오디오가 하나로 되어있는 맨 밑의 2개 영상만 다운로드 가능한 영상으로 표시되고, 360p, 720p 영상만 다운로드가 가능한 것으로 표시되게 됩니다.

우리가 유튜브 동영상을 다운로드 받는 경우는 대부분은 영상과 오디오가 하나로 합쳐진 영상일 것이고, 포맷 코드 18, 22번 중의 하나를 다운로드 받거나, 목록에 있는 비디오와 오디오 1개씩을 선택해 하나로 합쳐서 다운로드를 받아야 합니다.

비디오와 오디오 리소스를 하나로 합쳐서 다운로드 하는 방법은 밑에서 자세히 설명합니다.

좀더 자세히 살펴 보면 앞의 영상 예를 보면 해당 영상(만)은 FHD(1080p ) 30fps가 최고 해상도이고 mp4(포맷 코드137)와 webm(포맷 코드 248) 포맷으로 다운로드를 받을 수 있습니다. 코덱 정보도 "vp9", "avc1"으로 표시를 해줍니다.

오디오(만)은 128k m4a(포맷 코드 140) 포맷이나 159k opus 코덱인 webm(포맷 코드 251) 포맷이 최고 품질입니다.

항목 용도
format code 리소스의 키 값. 다운로드 할 때 키 값으로 다운로드 할 리소스를 지정.
extension 해당 리소스의 다운로드시 적용 확장자.
resolution 해상도 및 비트레이트 정보 표시.
"audio only" 는 오디오 리소스 임을 표시, 나머지는 영상만, 또는 영상+오디오 입니다.
영상이 있는 리소스는 "가로x세로" 정보와 초당 비트레이트 율 정보를 표시합니다.
note 리소스에 대한 상세 정보 표시.
코덱, 초당프레임율(fps), 비디오만(video only), 파일 용량 정보 표시

3. 동영상 다운로드

A. 720p 영상 다운로드

먼저 영상과 오디오가 하나로 되어있는 영상을 다운로드 받아보겠습니다.

> youtube-dl -f 22 https://youtu.be/vKdAusMqYs8

다운로드가 다음과 같이 진행됩니다.

영상 파일 다운로드 위치는 현재 커맨드 라인 창 경로가 됩니다.

유튜브 영상 다운로드 화면

현재 유튜브는 영상과 오디오가 하나로 된 영상은 720p(1280x768 30fps) 까지만 다운로드 가능합니다. 실제 유튜브에서 재생되는 영상의 해상도와는 무관하며, 영상을 올린 본인이어도 선택의 여지같은건 없습니다.

720p 보다 높은 해상도 영상을 오디오와 함께 다운로드 받으려면 "youtube-dl" 과 같은 프로그램을 사용해 영상과 오디오 리소스를 선택해 합쳐서 다운로드 받아야 합니다.

B. 최고 해상도 영상 다운로드

앞의 영상은 1080p가 최대 해상도 영상입니다. 영상과 오디오 리소스를 각각 선택해서 하나의 영상으로 다운로드 받아보겠습니다.

리소스 목록에 4K 이상의 리소스가 표시될 경우 4K 동영상도 다운로드 할 수 있습니다.

먼저 mp4 영상을 다운로드 받아보겠습니다. mp4 포맷의 1080p 영상만은 포맷 코드가 137이고, mp4 오디오 포맷인 m4a 포맷은 128k가 최고 품질이고 포맷 코드는 140 입니다.

다음과 같이 "-f" 옵션 파라메터 뒤에 "영상포맷코드+오디오포맷코드" 를 추가해 영상의 리소스를 명시합니다.

> youtube-dl -f 137+140 https://youtu.be/vKdAusMqYs8 

ffmpeg 를 다운로드 받아 경로 설정을 하지 않은 경우 다음과 같은 에러가 표시되고 다운로드가 취소됩니다.

ffmpeg 경로를 찾을 수 없어 다운로드가 취소됨

현재 경로에 중복 파일명이 없으면 다운로드와 파일 합치기가 진행되고 mp4 파일이 생성됩니다,

C. 고품질 webm 영상 다운로드

영상과 오디오 퀄리티가 더 좋은 webm 포맷 영상은 지원하지 않는 동영상 플레이어나 편집 프로그램이 있기 때문에 mp4 포맷으로 변환해서 다운로드를 받아야 하고, 추가로 파라메터를 적용해야 합니다.

앞의 영상 리소스 목록에서 최고 해상도인 1080p webm 영상(만) 은 포맷 코드가 248이고, webm 오디오 파일은 품질이 159k인 파일의 포맷 코드가 251 입니다. 

앞서와 같은 방법으로 포맷 코드를 명시해서 다운로드를 하려면

> youtube-dl -f 248+251 https://youtu.be/vKdAusMqYs8 

하면 됩니다.

확장자는 webm 으로 생성됩니다.

"ffmpeg"은 영상 포맷을 변경할 수 있는 기능이 있기 때문에 "youtube-dl" 을 실행할 때 파라메터를 추가로 지정하면 "ffmpeg" 을 통해 포맷 변환까지 한꺼번에 해주게 됩니다.

webm으로 다운로드 받은 고품질 영상을 mp4로 변환까지 한꺼번에 하려면 

> youtube-dl -f 248+251 --recode-video mp4 https://youtu.be/vKdAusMqYs8 

이렇게 "--recode-video" 옵션으로 변환할 포맷을 뒤에 공백을 띄워서 지정해주면 됩니다.

4. MP3만 다운로드

포맷 코드를 mp4 오디오, 또는 webm 오디오 리소스만 지정하면 오디오만 다운로드 받아집니다.

앞의 동영상 리소스 목록에서 다음과 같이 오디오 리소스만 지정하면 됩니다.

> youtube-dl -f 140 https://youtu.be/vKdAusMqYs8