Eli의 여백

바쁜 나날들 사이에서 생각났던 이런저런 것들을 적어봅니다.

IT/새로운 시도

유튜브 영상을 동영상 파일로 다운로드 youtube-dl (다른 사이트도 가능)

Eli♪ 2021. 3. 13. 18:12

1~2년쯤 전에 유튜브 영상을 녹화같은 스크린캡쳐방식 말고 원본화질로 다운로드받을 수 없을까 하면서 찾아보다 우연히 발견한 것이 youtube-dl이다. 이전 글에서도 유튜브 영상의 음질을 파악하는데 사용했었는데, 나중에 해보니 사운드클라우드같이 소리만 있는 사이트도 되는 거였다. 웬만한 동영상과 음원 사이트에서 가능한 만능 프로그램이라는 사실을 알게 된 이후로 이곳저곳에서 유용하게 써먹고 있는데 이번에 또 사용할 일이 생겨서 이번 기회에 사용법을 정리해보고자 한다.

 

 

다운로드

youtube-dl은 단일 exe파일로 무설치 형식이다. 다음의 Github 다운로드 페이지에서 최신 버전으로 다운받을 수 있다. 윈도우 사용자인 경우 아래의 링크를 이용하면 더 쉽게 다운로드가 가능하다.

 

yt-dl.org/latest/youtube-dl.exe

 

나는 주로 동영상을 받을 예정이므로 동영상 폴더에 다운을 받았다.

이미 예전에 다운받은게 있는 경우 터미널에서 다음을 입력하면 최신으로 업데이트가 된다. (아래 예시는 powershell)

.\youtube-dl.exe -U

 

기본 사용법

1. 터미널 열기

youtube-dl은 기본적으로 터미널에서 실행하는 방식이다. 터미널을 여는 방법은 다양하지만 youtube-dl이 있는 폴더까지 찾아가기 귀찮기 때문에 다음의 방법들을 이용한다. 

 

방법 1: youtube-dl이 있는 폴더에서 왼쪽 위의 파일을 누르고 powershell 열기 선택

방법 2: youtube-dl이 있는 폴더의 빈공간을 우클릭해서 자기가 쓰는 터미널 클릭

 

이번 글에서는 1번 방법으로 해 보겠다. 이 방법조차 귀찮은 경우 path에 넣어놓고 전역으로 사용할 수도 있을 것이다.

 

2. 다운받고 싶은 웹페이지 url 복사하기

웹브라우저 주소창에 가서 주소 전체를 Ctrl + C 등을 통해 복사한다. 이 글에서는 아래의 유튜브 영상에 대해 다운로드를 해 본다.

 

출처: Neon vines 유튜브 영상 캡쳐( https://youtu.be/1nfVFngLhnE )

 

3. 터미널에서 youtube-dl을 실행하며 주소를 함께 입력

아까 열어뒀던 터미널에 다음의 형식으로 주소를 입력한다. 주소 양쪽은 큰따옴표로 묶어준다. 맨앞의 점은 현재 폴더라는 의미이다.

.\youtube-dl.exe "다운받고싶은 영상 URL"

예시:

.\youtube-dl.exe "https://youtu.be/1nfVFngLhnE"

 

그러면 자기가 알아서 다운로드를 수행한다. 결과물은 기본적으로 youtube-dl이 있는 폴더에 저장된다. 참고로 터미널에서 y만 누르고 tab을 누르면 y로 시작하는 youtube-dl이 자동완성이 된다. 파일이 여러개인 경우 tab을 여러 번 누르면 다른 파일도 선택할 수 있다. 그리고 웹 주소의 경우도 Powershell의 경우 Ctrl +V를 지원하지만 가끔 안되는 터미널들이 있다. 이 경우 빈 공간에 마우스 우클릭을 하면 자동으로 붙여넣기가 된다. 나는 Ctrl + V 보다 이게 더 편해서 자주 쓰고 있다.

 

 

다운로드가 잘 되었다. 얼마전까지만 해도 mp4로 다운로드가 되었는데 이제 webm 컨테이너인채로 다운로드가 된다. 재생도 윈도우 10 기본 동영상 재생기로 재생이 잘 된다. 팟플레이어 등으로도 재생이 잘 된다.

 

다운로드 옵션들

1. 다운 가능한 해상도, 코덱 및 비트레이트 종류 보기

youtube-dl은 기본적으로 제일 좋은 해상도와 음질 조합으로 다운로드를 해준다. 그러나 가끔 용량이 너무 커서 곤란한 경우 낮은 해상도로 다운로드를 해야할 때도 있다. 이 경우 다운로드 전에 -F 옵션을 넣어주면 다운로드 가능한 옵션을 볼 수 있다. 관련내용은 github 페이지에서도 확인할 수 있다.

 

.\youtube-dl.exe -F "다운받고싶은 영상 URL"

잘 보면 맨 마지막 18번 포맷을 제외하면 영상과 오디오가 따로 분리되어 있고, 영상은 avc1, vp9 두가지 코덱, 소리는 opus와 mp4a로 되어있는 것을 확인할 수 있다. 이제 원하는 영상과 오디오 조합을 확인하면 된다.

 

다운로드는 다음 명령어를 통해 가능하다. 앞에서 포맷을 볼때는 대문자 F였지만 다운받을때는 소문자 f인 것에 주의한다.

.\youtube-dl.exe "다운받고싶은 영상 URL" -f 영상포맷코드+소리포맷코드

예시:

.\youtube-dl.exe "https://youtu.be/1nfVFngLhnE" -f 278+249

 

그리고 extension이 같아야 정상 다운로드가 가능하다. 예를들면 포맷코드 249는 webm extension의 opus 코덱 소리이며, 포맷코드 169은 mp4 extension의 avc1 코덱 영상이다. 이 두개 조합으로는 다운로드할 수 없다. 그리고 포맷을 하나만 입력하면 영상이나 소리를 따로 다운로드받을 수 있다.

 

그 외에도 자막 다운로드나 출력 포맷 지정 등의 다양한 옵션들이 있는데, 간략 사용법은 나무위키에 잘 정리되어 있다. 

 

위 방법으로 다운로드가 불가능한 사이트의 경우 (고급)

사실 이 글을 쓴 목적은 여기에 있다. 다운로드하고 싶은 영상을 찾았지만 기본 방법으로는 다운로드가 불가능했기 때문이다. 인터넷을 좀 뒤져보니 동영상의 m3u8 주소를 알아내면 된다고 한다. 이 방법에는 ffmpeg라는 별도 라이브러리가 필요하다.

 

윈도우의 경우 다음을 통해 빌드된 바이너리를 받을 수 있다. 릴리즈에 있는 링크를 쓰면 된다.

 

www.gyan.dev/ffmpeg/builds/

 

이후의 다운로드 방법을 간단하게 방법을 요약하면 다음과 같다.

1. ffmpeg를 다운받은 후 같은폴더에 복사한다든지 해서 youtube-dl이 인식할 수 있게 한다.

1. 웹브라우저 해당 페이지에서 F12를 눌러 개발자 도구를 연 후 network 탭에 들어간다.

2. 웹 페이지를 새로고침하여 network에 리소스가 뜨게 한다.

3. 왼쪽위의 검색창에 m3u8을 넣어 컨텐츠 필터를 한다. 이 중 메인 m3u8 주소를 복사한다.

4. youtube-dl의 주소에 복사한 주소를 입력한다.

 

이렇게 하면 다음과 같이 정상 다운로드가 가능하다.

 

 

그리고 내용을 참고한 블로그에 따르면 DRM 걸린 영상은 다운로드가 불가능하다고 한다.

 

요약 및 결론

youtube-dl은 각종 사이트에서 영상이나 음원 등을 다운받는데 사용 가능한 범용 다운로드 프로그램이다. 기본 방법으로 안받아지거나 포맷 변환을 하고싶은 경우 ffmpeg와 함께 사용한다.

 

youtube-dl 바이너리: yt-dl.org/latest/youtube-dl.exe

ffmpeg 윈도우용(release 탭 사용): www.gyan.dev/ffmpeg/builds/

 

기본 사용법:

.\youtube-dl.exe "다운받고싶은 영상 URL"

 

주의사항:

불법적인 영상을 다운로드하였을 때 법적 책임이 발생할 수 있으며, 
다운받은 영상을 무단으로 배포하거나 상업적으로 이용하는 일은 저작권법에 위반될 수 있음을 인지하기 바란다.