From 1de75fa129775b6d1ea57686299e0aeadb9a8ab8 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Mon, 15 Feb 2021 23:16:11 +0530 Subject: [PATCH] [ExtractAudio] Don't re-encode when file is already in a common audio format (Closes #58) Fixes: https://github.com/blackjack4494/youtube-dlc/issues/214 Fixes: https://github.com/ytdl-org/youtube-dl/issues/28006 --- youtube_dlc/postprocessor/ffmpeg.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/youtube_dlc/postprocessor/ffmpeg.py b/youtube_dlc/postprocessor/ffmpeg.py index 0982bea81..292af9aa8 100644 --- a/youtube_dlc/postprocessor/ffmpeg.py +++ b/youtube_dlc/postprocessor/ffmpeg.py @@ -280,6 +280,8 @@ def _ffmpeg_filename_argument(self, fn): class FFmpegExtractAudioPP(FFmpegPostProcessor): + COMMON_AUDIO_EXTENSIONS = ('wav', 'flac', 'm4a', 'aiff', 'mp3', 'ogg', 'mka', 'opus', 'wma') + def __init__(self, downloader=None, preferredcodec=None, preferredquality=None, nopostoverwrites=False): FFmpegPostProcessor.__init__(self, downloader) if preferredcodec is None: @@ -301,6 +303,10 @@ def run_ffmpeg(self, path, out_path, codec, more_opts): def run(self, information): path = information['filepath'] + orig_ext = information['ext'] + + if self._preferredcodec == 'best' and orig_ext in self.COMMON_AUDIO_EXTENSIONS: + self.to_screen('Skipping audio extraction since the file is already in a common audio format') filecodec = self.get_audio_codec(path) if filecodec is None: