유튜브(youtube) 동영상을 다운로드 하는 프로그램 youtube-dl 소개
오늘 twitter를 통해서 재미있는 프로그램을 하나 알게 되었습니다.
https://twitter.com/wikibooks/status/578750650172866560
How to select video quality from youtube-dl
; http://katselphrime.com/2015/03/20/how-to-select-video-quality-from-youtube-dl/
오호~~~ 명령행으로 제작된 프로그램이 공개되어 있었던 것입니다. ^^ 위의 소개 글에 보면, 1080p 동영상을 youtube-dl.exe로 다운로드 받는 방법이 나오는데요. 아쉽게도 리눅스 화면으로 설명하고 있는데, 저는 윈도우 환경으로 설명해 볼까 합니다.
우선, youtube-dl.exe는 다음의 사이트에서 단독 exe 파일로 다운로드 받을 수 있습니다.
youtube-dl Download videos from YouTube
; http://rg3.github.io/youtube-dl
Windows 용 youtube-dl.exe 실행 파일
; https://yt-dl.org/latest/youtube-dl.exe
기본적인 동영상을 다운로드하는 것이라면 위의 프로그램만 다운로드 받아도 됩니다. 하지만, 고화질의 동영상을 다운로드 받고 싶다면 avconv 도구도 다운로드 받아야 합니다. 이는 다음의 배포 사이트에서 구할 수 있습니다.
/windows/release-gpl/
; http://builds.libav.org/windows/release-gpl/
32비트용 avconv
; http://builds.libav.org/windows/release-gpl/libav-11.3-win32.7z
64비트용 avconv
; http://builds.libav.org/windows/release-gpl/libav-11.3-win64.7z
위의 파일 중에 하나를 다운로드 받아서 압축을 풀면 \win64\usr\bin 폴더에 avconv.exe 파일이 있습니다. 따라서, 이전에 다운로드 받은 youtube-dl.exe 파일을 \win64\usr\bin 폴더에 복사해 주고 거기서 실행해 주면 됩니다.
예를 들기 위해 "이승철의 My Love 뮤직비디오"를 다운로드 해볼까요? ^^
이승철 (Lee Seung Chul) - My Love MV
; https://www.youtube.com/watch?v=hXiCB6SZp4U
대개의 경우, 검색을 통해 동영상을 보게 될텐데요. 이런 경우 웹 브라우저의 주소 창에 이렇게 "hXiCB6SZp4U"라는 기준값을 얻어낼 수 있습니다.
바로 그 값을 youtube-dl.exe의 실행시 "-F" 옵션(대소문자 구분)과 함께 실행해 주면 다음과 같이 오디오/비디오에 대한 포맷 목록을 얻을 수 있습니다. ("-F" 옵션없이 실행하면 곧바로 동영상을 다운로드 받을 수 있습니다.)
E:\libav-11.3-win64\win64\usr\bin>youtube-dl hXiCB6SZp4U -F
[youtube] hXiCB6SZp4U: Downloading webpage
[youtube] hXiCB6SZp4U: Extracting video information
[youtube] hXiCB6SZp4U: Downloading DASH manifest
[info] Available formats for hXiCB6SZp4U:
format code extension resolution note
140 m4a audio only DASH audio 128k , m4a_dash container, aac @128k (44100Hz), 6.78MiB
171 webm audio only DASH audio 160k , audio@128k (44100Hz), 6.95MiB
141 m4a audio only DASH audio 256k , m4a_dash container, aac @256k (44100Hz), 13.61MiB
160 mp4 256x144 DASH video 119k , 15fps, video only, 5.99MiB
278 webm 256x144 DASH video 192k , webm container, VP9, 1fps, video only, 4.24MiB
242 webm 426x240 DASH video 217k , 1fps, video only, 8.12MiB
133 mp4 426x240 DASH video 249k , 30fps, video only, 13.06MiB
243 webm 640x360 DASH video 402k , 1fps, video only, 14.80MiB
134 mp4 640x360 DASH video 606k , 30fps, video only, 16.74MiB
244 webm 854x480 DASH video 816k , 1fps, video only, 27.79MiB
135 mp4 854x480 DASH video 1110k , 30fps, video only, 33.74MiB
247 webm 1280x720 DASH video 1515k , 1fps, video only, 53.07MiB
136 mp4 1280x720 DASH video 2214k , 30fps, video only, 64.77MiB
248 webm 1920x1080 DASH video 2546k , 1fps, video only, 96.68MiB
137 mp4 1920x1080 DASH video 4158k , 30fps, video only, 134.01MiB
17 3gp 176x144
36 3gp 320x240
5 flv 400x240
43 webm 640x360
18 mp4 640x360
22 mp4 1280x720 (best)
이 중에서 extension 컬럼의 값이 "m4a"라고 되어 있는 것은 Audio 포맷이고, "webm", "mp4" 등으로 되어 있는 것은 Video 포맷입니다. 따라서, 지원되는 포맷 중에서 가장 높은 값만을 조합해서 동영상을 다운로드 받을 수 있습니다.
예를 들어, 위의 출력에서는 141번에 해당하는 m4a 포맷이 가장 좋은 품질의 Audio 포맷이고, 동영상은 137번에 해당하는 1920x1080 포맷이 가장 좋습니다. 따라서 이 2가지 포맷을 조합해서 한 개의 동영상 파일로 "-f" 옵션(대소문자 구분)을 이용해 다운로드 할 수 있습니다.
E:\libav-11.3-win64\win64\usr\bin>youtube-dl hXiCB6SZp4U -f 137+141
[youtube] hXiCB6SZp4U: Downloading webpage
[youtube] hXiCB6SZp4U: Extracting video information
[youtube] hXiCB6SZp4U: Downloading DASH manifest
[download] Destination: 이승철 (Lee Seung Chul) - My Love MV-hXiCB6SZp4U.f137.mp4
[download] 100% of 134.01MiB in 00:12
[download] Destination: 이승철 (Lee Seung Chul) - My Love MV-hXiCB6SZp4U.f141.m4a
[download] 100% of 13.61MiB in 00:01
[ffmpeg] Merging formats into "이승철 (Lee Seung Chul) - My Love MV-hXiCB6SZp4U.mp4"
그럼, 해당 폴더에 "이승철 (Lee Seung Chul) - My Love MV-hXiCB6SZp4U.mp4" 파일로 저장되는 것을 확인할 수 있습니다. 오호~~~ 멋지군요. ^^
참고로, avconv.exe 파일이 없는 상태에서 "-f" 옵션으로 2개의 오디오/비디오 포맷을 합치려고 실행하면 다음과 같은 경고 메시지가 발생합니다.
E:\libav-11.3-win64\win64\usr\bin>youtube-dl hXiCB6SZp4U -f 137+141
[youtube] hXiCB6SZp4U: Downloading webpage
[youtube] hXiCB6SZp4U: Extracting video information
[youtube] hXiCB6SZp4U: Downloading DASH manifest
WARNING: You have requested multiple formats but ffmpeg or avconv are not installed. The formats won't be merged'
[download] Destination: 이승철 (Lee Seung Chul) - My Love MV-hXiCB6SZp4U.f137.mp4
[download] 100% of 134.01MiB in 00:13
[download] Destination: 이승철 (Lee Seung Chul) - My Love MV-hXiCB6SZp4U.f141.m4a
[download] 100% of 13.61MiB in 00:01
보시면, mp4파일과 m4a파일로 나뉘어진 체로 저장이 되는데요. 따라서 유튜브 동영상을 음성 파일과 영상 파일로 나누고 싶다면 avconv.exe 없이 실행해 주시면 됩니다.
참고로, 다음의 글도 관심있으면?
Internet Explorer 11에서 유튜브 동영상의 1080p 옵션이 보이지 않는 경우
; https://www.sysnet.pe.kr/2/0/1533
유튜브(Youtube) 비디오 파일을 안전하게 다운로드 받는 방법
; https://www.sysnet.pe.kr/0/0/448
그리고, 유튜브 자료를 그냥 음성만 MP3 파일로 간편하게 다운로드 받고 싶다면 웹에서 곧바로 다운로드 받을 수 있게 해주는 다음의 사이트가 좋습니다.
YouTube to mp3 Converter
; http://www.youtube-mp3.org
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]