1
0
mirror of https://github.com/ytdl-org/youtube-dl.git synced 2025-05-06 13:47:30 +00:00

When using formatted output, don't split on path for audio extraction. Filenames with periods are interpreted as extensions.

This commit is contained in:
kevin 2011-11-29 18:01:29 -08:00
parent c95da745bc
commit d75d7eb9ba

View File

@ -3794,14 +3794,14 @@ class PostProcessor(object):
class FFmpegExtractAudioPP(PostProcessor): class FFmpegExtractAudioPP(PostProcessor):
def __init__(self, downloader=None, preferredcodec=None, preferredquality=None, keepvideo=False, isformat=None):
def __init__(self, downloader=None, preferredcodec=None, preferredquality=None, keepvideo=False):
PostProcessor.__init__(self, downloader) PostProcessor.__init__(self, downloader)
if preferredcodec is None: if preferredcodec is None:
preferredcodec = 'best' preferredcodec = 'best'
self._preferredcodec = preferredcodec self._preferredcodec = preferredcodec
self._preferredquality = preferredquality self._preferredquality = preferredquality
self._keepvideo = keepvideo self._keepvideo = keepvideo
self._isformat = isformat
@staticmethod @staticmethod
def get_audio_codec(path): def get_audio_codec(path):
@ -3867,8 +3867,12 @@ class FFmpegExtractAudioPP(PostProcessor):
if self._preferredcodec == 'vorbis': if self._preferredcodec == 'vorbis':
extension = 'ogg' extension = 'ogg'
(prefix, ext) = os.path.splitext(path) if self._isformat:
new_path = prefix + '.' + extension new_path = path + '.' + extension
else:
(prefix, ext) = os.path.splitext(path)
new_path = prefix + '.' + extension
self._downloader.to_screen(u'[ffmpeg] Destination: %s' % new_path) self._downloader.to_screen(u'[ffmpeg] Destination: %s' % new_path)
status = self.run_ffmpeg(path, new_path, acodec, more_opts) status = self.run_ffmpeg(path, new_path, acodec, more_opts)
@ -4308,7 +4312,7 @@ def _real_main():
# PostProcessors # PostProcessors
if opts.extractaudio: if opts.extractaudio:
fd.add_post_processor(FFmpegExtractAudioPP(preferredcodec=opts.audioformat, preferredquality=opts.audioquality, keepvideo=opts.keepvideo)) fd.add_post_processor(FFmpegExtractAudioPP(preferredcodec=opts.audioformat, preferredquality=opts.audioquality, keepvideo=opts.keepvideo, isformat=opts.outtmpl))
# Update version # Update version
if opts.update_self: if opts.update_self: