init
This commit is contained in:
33
python/ytdl/download_audio.py
Normal file
33
python/ytdl/download_audio.py
Normal file
@ -0,0 +1,33 @@
|
||||
import yt_dlp
|
||||
import os
|
||||
|
||||
def download_and_convert_to_opus(url, output_filename):
|
||||
# Use yt-dlp to download the video with audio only
|
||||
ydl_opts = {
|
||||
'format': 'bestaudio/best',
|
||||
'outtmpl': '%(extractor)s-%(id)s.%(ext)s', # Save as a temporary file
|
||||
'restrictfilenames': True,
|
||||
}
|
||||
|
||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||
info_dict = ydl.extract_info(url, download=True)
|
||||
temp_file = ydl.prepare_filename(info_dict)
|
||||
|
||||
# Convert to OPUS using FFmpeg
|
||||
ffmpeg_command = [
|
||||
'ffmpeg',
|
||||
'-i', temp_file,
|
||||
'-c:a', 'libopus',
|
||||
'-b:a', '128k',
|
||||
output_filename
|
||||
]
|
||||
|
||||
os.system(' '.join(ffmpeg_command))
|
||||
|
||||
# Clean up the temporary file
|
||||
os.remove(temp_file)
|
||||
|
||||
# Example usage:
|
||||
url = input("input video url: ")
|
||||
filename = input("filname for ripped audio: ")
|
||||
download_and_convert_to_opus(url, filename + ".opus")
|
||||
Reference in New Issue
Block a user