From b46dab47e61c68efa0e51836a8cc9141d15d9e87 Mon Sep 17 00:00:00 2001 From: Talha Asghar Date: Thu, 26 Jan 2023 10:38:41 +0500 Subject: [PATCH] fix: #50 - brought back download audio file --- mps_youtube/commands/download.py | 2 +- mps_youtube/pafy.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/mps_youtube/commands/download.py b/mps_youtube/commands/download.py index d4b84691..596b0ee8 100644 --- a/mps_youtube/commands/download.py +++ b/mps_youtube/commands/download.py @@ -88,7 +88,7 @@ def download(dltype, num): # perform download(s) # dl_filenames = [args[1]] # f = _download(*args, **kwargs) - success = pafy.download_video(song.ytid, config.DDIR.get) + success = pafy.download_video(song.ytid, config.DDIR.get, True if dltype.startswith("da") else False) if success: g.message = "Saved \'" + song.title + "\' to " + c.g + config.DDIR.get + c.w diff --git a/mps_youtube/pafy.py b/mps_youtube/pafy.py index 1f59cd54..8d543889 100644 --- a/mps_youtube/pafy.py +++ b/mps_youtube/pafy.py @@ -38,7 +38,7 @@ def get_video_streams(ytid): info_dict = ydl.extract_info(ytid, download=False) return [i for i in info_dict['formats'] if i.get('format_note') != 'storyboard'] -def download_video(ytid, folder): +def download_video(ytid, folder, audio_only=False): ''' Given a youtube video id and target folder, this function will download video to that folder @@ -47,6 +47,13 @@ def download_video(ytid, folder): ytdl_format_options = { 'outtmpl': os.path.join(folder, '%(title)s-%(id)s.%(ext)s') } + if audio_only: + ytdl_format_options['format'] = 'bestaudio/best' + ytdl_format_options['postprocessors'] =[{ + 'key': 'FFmpegExtractAudio', + 'preferredcodec': 'mp3', + 'preferredquality': '192', + }] with yt_dlp.YoutubeDL(ytdl_format_options) as ydl: ydl.download('https://www.youtube.com/watch?v=%s' % ytid)