혼자 운전할 때는 팟캐스트를 주로 듣는다. 하지만 동승자가 있을 때는 분위기를 잡기 위해 음악을 틀어두는 편이다. 유튜브에 분위기 좋은 음악이 많은 데, 유튜브를 mp3 로 변환할 수 있는 웹사이트가 많지만, 지저분한 사이트가 많아 사용하기 꺼림칙하다. 그래서 이 포스팅에서는 파이썬 라이브러리 youtube_dl 과 ffmpeg 으로 유튜브 영상 다운로드와 mp3 파일을 변환하는 방법을 알아보고자 한다. 본래 유튜브에서는 특정 영상은 다운로드를 받을 수 없게 해두었다. 그래서 다른 라이브러리(예: pytube)를 사용할 때, 403 에러같은 게 뜨게 되지만 여기서 사용하는 라이브러리 ydl_opts 로 민감한 영상도 제한 없이 받을 수 있다. 아래 예시 코드를 보자.
import os
import subprocess
import youtube_dl
# 다운로드 받고 싶은 음악의 유튜브 주소를 적어준다.
url = 'https://www.youtube.com/watch?v=JGwWNGJdvx8'
ydl_opts = {} # 필요하다면 옵션을 여러가지 사용할 수 있다. 사용법은 https://github.com/ytdl-org/youtube-dl 를 참고하자.
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
# 다운로드 받은 webm 파일을 리스트에 저장한다.
file_list = os.listdir('.')
video = [file for file in file_list if file.endswith(".webm")]
# 파일 하나하나 모두 mp3 로 변환한다.
for v in video:
s = v.split('.')[0]+'.mp3'
cmds = ['ffmpeg', '-i', v,'-vn', '-ab', '192K', '-y', s]
subprocess.Popen(cmds)
print('Converting',v,'to',s)
이 라이브러리를 사용하면 유튜브 외에도 비메오나 카카오티비, 네이버티비 등에서도 얼마든 영상을 다운로드 받을 수 있다.
'노트정리 > 파이썬 Python' 카테고리의 다른 글
argparse 를 주피터 노트북(jupyter notebook)에서 사용하기 (0) | 2021.05.17 |
---|---|
jupyter lab 에서 자동완성(autocomplete)이 안될 때 해결법 (0) | 2021.01.24 |
에러해결법 ImportError: IProgress not found (0) | 2020.11.10 |
파이썬으로 유튜브 특정 채널의 동영상 목록에서 타이틀과 썸네일 크롤링하기 (0) | 2019.10.24 |
윈도우에서 주피터 글꼴 추천 (0) | 2019.09.09 |
conda 에서 pip 에러(ImportError: No module named _internal)가 뜰 때 해결법 (0) | 2019.01.20 |
Jupyter Themes 에서 코드 끝을 볼 수 없을 때 해결법 (0) | 2019.01.16 |
주피터 노트북 (Jupyter Notebook) 테마 바꾸기 - 어둡게 (0) | 2018.12.21 |