728x90
반응형
유튜브 링크를 이용하여 해당 동영상을 오디오 파일로 저장해보겠습니다.
라이브러리 설치
python 파일 생성 하기 전 필요한 설치 작업은 두 가지!
- - yt-dlp : 다양한 사이트의 동영상을 다운로드하기 위해 사용하는 소프트웨어
- - ffmpeg : 다양한 멀티미디어 포맷을 다루는 코덱
brew install yt-dlp
brew install ffmpeg
유튜브 영상 다운로드
import yt_dlp
def download_video_with_ytdlp(youtube_url, filename):
"""yt-dlp를 사용하여 YouTube에서 MP4 비디오를 다운로드하고 파일 이름을 반환합니다."""
ydl_opts = {
'format': 'bestvideo+bestaudio/best', # 최고 품질의 비디오와 오디오 형식을 지정
'outtmpl': f'{filename}.mp4', # 파일 이름을 지정하고 확장자를 mp4로 설정
'merge_output_format': 'mp4', # 비디오와 오디오를 mp4 형식으로 병합
'ffmpeg_location': '/opt/homebrew/bin/ffmpeg', # 필요한 경우 FFmpeg 경로 지정
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info_dict = ydl.extract_info(youtube_url, download=True) # YouTube 정보 추출 및 다운로드
file_name = ydl.prepare_filename(info_dict).replace('.webm', '.mp4') # 파일 이름을 mp4로 변경
return file_name # 파일 이름 반환
# 예시 사용법
youtube_url = '-'
download_video_with_ytdlp(youtube_url, 'video') # 비디오 다운로드
실행하면
아래와 같이 mp4형식의 영상이 다운로드 되는 것을 볼 수 있다.
내가 테스트로 다운로드 해본 영상은 'https://www.youtube.com/watch?v=olONVwWg97w' 이다.
그런데 만약 영상은 필요가 없고 오디오 파일만 필요한 경우?
유튜브 영상에서 오디오만 파일로 저장
import yt_dlp
def download_audio_with_ytdlp(youtube_url, filename):
"""yt-dlp를 사용하여 YouTube에서 오디오를 다운로드하고 파일 이름을 반환합니다."""
ydl_opts = {
'format': 'bestaudio/best', # 최고 품질의 오디오 형식 지정
'extractaudio': True, # 오디오만 추출
'audioformat': 'wav', # 오디오 형식을 wav로 지정
'outtmpl': f'{filename}.%(ext)s', # 파일 이름 지정 및 확장자 설정
'postprocessors': [{
'key': 'FFmpegExtractAudio', # FFmpeg을 사용하여 오디오 추출
'preferredcodec': 'wav', # 선호하는 코덱을 wav로 설정
'preferredquality': '192', # 오디오 품질을 192kbps로 설정
}],
'ffmpeg_location': '/opt/homebrew/bin/ffmpeg', # 필요한 경우 FFmpeg 경로 지정
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info_dict = ydl.extract_info(youtube_url, download=True) # YouTube 정보 추출 및 다운로드
file_name = ydl.prepare_filename(info_dict).replace('.webm', '.wav') # 파일 이름을 wav로 변경
return file_name # 파일 이름 반환
# 예시 사용법
youtube_url = '-'
download_audio_with_ytdlp(youtube_url, 'audio') # 오디오 다운로드
실행하면,
아래와 같이 audio.wav가 생성되는 것을 볼 수 있다!
728x90
반응형
'SELF STUDY > Python' 카테고리의 다른 글
[Python] VSCode 가상환경 설정 | 가상환경 생성 | 활성화 | python3 | Venv (0) | 2024.08.19 |
---|---|
[Python] FastAPI란? | FastAPI 사용해보기 (0) | 2024.08.15 |
[Python] Google Cloud Speech-to-Text API 연동하여 audio 파일에서 스크립트 추출하기 | 단어 단위 | 문장 단위 | 시간 (0) | 2024.08.11 |