Youtube의 영상을 다운로드 하기 위해 다운로더다 뭐다 검색하면 10중 8~9는 잘 되지 않거나 돈을 내야 한다..
그러다가 오픈소스인 youtube-dl을 알게 되었고, 사용해 봤더니 잘된다.
심지어 웹 기반도 아니고.. command-line program이다.
https://ytdl-org.github.io/youtube-dl/index.html
GUI 프로그램도 있는데, 사용해본 결과 잘 되는것 같으나 잘 되지 않는다.
예를들어 난 1080p로 다운받고 싶은데, 그렇게 하는 설정이 없다거나..
그래서 이리저리 해본 끝에 적절한 세팅을 찾게 되었다.
준비물 : 다운로드 받을 유튜브 영상의 주소
이 영상의 주소는 https://www.youtube.com/watch?v=mF9YL8Msc0M 이다.
그럼 일단 명령 프롬프트를 켜고, 프로그램을 실행시켜 -F 옵션으로 다운받을 수 있는 파일의 목록을 읽는다.
youtube-dl -F https://www.youtube.com/watch?v=mF9YL8Msc0M
그럼 이렇게 다운받을 수 있는 목록이 나온다.
1080p를 다운받고자 한다면 resolution을 봐서, 1920x1080 인것을 골라야 한다.
그중 mp4확장자, 즉 format code가 137인 줄을 보자.
137 mp4 1920x1080 DASH video 3014k , mp4_dash container, avc1.640028, 30fps, video only
잘 보면, video only, 즉 소리가 없는! 영상만 있는 파일이다.
다른 목록을 보면, video only 말고 audio only 말고 유일한건 360p이기 때문에
아무옵션 없이 다운받는다면 저 360p가 다운되게 된다.
따라서 우리는 video only 137에 audio only 140을 둘 다 다운로드 받아,
두개를 합쳐 소리가 있는 영상을 만들어야 한다.
audio only 중 251이 48000hz로 뭔가 더 좋아보이는데 저건 나중에 합칠때 뭐가 잘 안되더라..
소리와 영상을 합치는 거는 ffmpeg를 사용해야 한다.
윈도우 용 빌드 : https://ffmpeg.zeranoe.com/builds/
저기서 다운받은 ffmpeg.exe를 youtube-dl.exe와 같은 폴더에 넣어두고
이제 다시 youtube-dl로 영상파일, 소리파일을 다운받아 합치는 명령옵션을 넣은 채로 실행시킨다.
youtube-dl -f 137+140 https://www.youtube.com/watch?v=mF9YL8Msc0M
잘 보면 format 137과 140을 다운받고, 합치겠단 말이다.
그럼 이렇게 mp4 영상파일과 m4a 소리파일을 다운로드 해서, ffmpeg를 자기가 실행시켜 두 파일을 합친다.
그럼 이렇게 영상과 소리가 합쳐진 하나의 1080p 파일이 만들어진다.
3줄요약
1. youtube-dl.exe / ffmpeg.exe 를 같은 폴더에 다운받는다.
2. 명령프롬프트로 그 폴더에 들어가 youtube-dl -F "유튜브영상주소" 로 다운받을 포멧을 결정한다.
3. youtube-dl -f "영상포멧번호"+"소리포멧번호" "유튜브영상주소" 로 다운!