본 포스팅은 윈도우10 기반, Youtube dl을 이용한 유튜브 영상/음원 추출에 대하여 다룬다.
요즘 같은 시국에, 침대에 누워 유튜브 영상을 돌려보다 보면 소장각이 나오는 영상들을 발견할 수 있다. 혹은 구하기 힘든데 가지고는 싶었던 음원을 발견할 수도 있다.
조금만 검색을 해본다면 영상이나 음원을 쉽게 다운받을 수 있는 사이트들을 발견할 수 있지만, 광고가 정말 많고 선택의 폭이 좁은 데다 오래 걸린다. 때로는 그 프로세스에 의심이 들기도 한다.
어차피 프로그램을 만들고 광고를 끼워넣은 것일 텐데, 당연히 나도 만들 수 있지 않을까라는 마음에 파이썬으로 구현할 수 있는 방법을 찾아보았고, 결국 방법을 찾아냈다.
주의할 점은, 이런 식으로 다운받은 자료는 절대 개인적으로만 사용해야 한다는 것이다. (물론 다운로드 받는다는 사실도 떳떳하지는 않지만..) 저작권을 준수하는 성숙한 현대 시민이 되자.
01. 세팅
먼저 ffmpeg와 youtube dl 파일을 다운로드 받는 작업이 필요하다. ffmpeg은 인코딩을 할 수 있는 오픈소스로, 음원 추출 시 필요하기에 미리 세팅해놓자.
http://ffmpeg.org/download.html
위 경로에 들어가서 파일을 다운로드 받고, 적당한 위치에 압축을 풀어주면 된다.
http://ytdl-org.github.io/youtube-dl/download.html
마찬가지로 위 경로에 들어가 두 번째 줄에 "windows exe"를 누르면 exe파일이 다운로드된다. 이 파일은 앞서 받은 ffmpeg 폴더 안의 bin 폴더에 넣어주자.
02. cmd 창
Youtube dl의 사용은 cmd 창에서 이루어진다. 나 같은 일반인은 익숙지 않은 화면이지만, 지금 사용할 내용은 그렇게 어렵지 않다.
일단 cmd 창을 켜자. 윈도우 검색기에 cmd 혹은 명령 프롬프트를 입력해서 열 수 있다. 그리고 실행 위치를 ffmpeg와 youtube dl 파일이 있는 곳, 즉 아까 그 bin 폴더로 옮길 것이다.
cmd 창에서 폴더를 이동하는 명령어는 "cd" 이다.
cd (폴더 이름) 이런 식으로 입력하면 실행 위치가 바뀐다. 만약 상위 폴더로 가고 싶다면 폴더 이름 대신 ".."을 입력해주면 된다.
추천하는 방법은 일단 최상위 폴더로 나온 후에, 한 번에 경로를 찾아가는 것이다.
먼저 cd .. 를 이용하여 제일 위, 즉 상위 폴더가 없는 드라이브 경로까지 나온다.
그다음, 주소를 복사해온다. 주소를 복사하는 방법은 다음과 같다. 윈도우 탐색기로 bin 폴더를 연 다음, 그림처럼 주소가 있는 부분을 우클릭하여 주소 복사를 클릭한다.
그리고 cmd 창으로 돌아가 (cd (경로 주소) 가 입력되도록!) cd 뒤에 붙여 넣기를 하고 엔터를 누르면, 손쉽게 파일 경로까지 갈 수 있다.
03. 영상 추출
이제 세팅은 끝났고, 명령어만 입력하면 된다.
먼저 영상 다운로드부터 해보자. 다음 명령을 입력하면 다운 받을 수 있는 항목의 리스트를 볼 수 있다. url 부분에 다운로드 받고 싶은 영상의 url을 넣자.
.\youtube-dl.exe -F "url"
위와 같이 리스트가 출력된다.
자세히 살펴보면 mp4 파일도 있지만, audio only인 파일과 video only인 파일도 섞여있다. 보통 고화질, 고음질인 파일은 이렇게 오디오와 비디오가 따로 되어있다.
따라서 우리에게는 두 가지의 선택지가 주어진다. mp4 파일을 받든지, 오디오와 비디오를 따로 받아서 합치든지. 두 방법 모두 youtube dl에서는 쉽게 할 수 있다.
mp4 파일을 받는 경우 다음 명령어를 넣으면 된다.
.\youtube-dl.exe -citw -f (파일번호) "url"
두 파일을 합치는 경우 다음 명령어를 넣으면 된다.
.\youtube-dl.exe -citw -f (비디오번호)+(오디오번호) "url"
이때 파일번호와 비디오번호, 오디오번호는 다운받을 파일에 해당하는 format code다. 리스트에서 맨 앞 열에 해당한다.
조금만 기다리면 실행 위치(bin 폴더 안)에 다운로드된 영상 파일이 존재함을 확인할 수 있다.
04. 음원 추출
음원 다운로드는 더 쉽다. 다음 명령어만 입력해주면 된다.
youtube-dl -x --audio-format mp3 --audio-quality 0 "url"
여기서 --audio-quality 0 항목은 고음질의 음원을 선택하는 파트로, 굳이 고음질을 원하지 않는다면 제거해도 되는 항목이다.
마찬가지로 조금만 기다리면 실행 위치에 파일이 존재함을 확인할 수 있다.
지금까지 Youtube dl을 사용하는 법을 알아보았다. 하지만 cmd를 조작하고 명령어를 반복하여 입력해야 하는 작업이 귀찮게 느껴졌다. cmd를 파이썬으로 조종할 방법을 찾던 중 subprocess 라는 모듈을 발견하게 되었다.
이 모듈을 활용한 파이썬 코드 작성은 다음 포스팅에서 다루도록 하겠다.
'공대생 > 무작정 해보는 파이썬' 카테고리의 다른 글
Python으로 Mp3 파일 속성 편집하기 (0) | 2020.04.09 |
---|---|
Python 유튜브 영상/음원 추출 (2) (0) | 2020.04.05 |
Python Tkinter - BMI 계산기 만들기 (0) | 2020.04.01 |
Python Beautifulsoup 네이버 뉴스 크롤링 (2) (1) | 2020.03.31 |
Python Beautifulsoup 네이버 뉴스 크롤링 (1) (1) | 2020.03.31 |
댓글