From: Jaime Marquínez Ferrándiz Date: Fri, 3 Jan 2014 11:52:27 +0000 (+0100) Subject: FFmpegMetadataPP; Write temporary file to `something.temp.{ext}` (fixes #2079) X-Git-Url: http://git.oshgnacknak.de/?a=commitdiff_plain;h=91d7d0b333d2fe09121c7328cf519c1b5331adef;p=youtube-dl FFmpegMetadataPP; Write temporary file to `something.temp.{ext}` (fixes #2079) ffmpeg correctly recognize the formats of extensions like m4a, but it doesn’t works if it’s passed with the `—format` option. --- diff --git a/youtube_dl/PostProcessor.py b/youtube_dl/PostProcessor.py index 69aedf87a..097e1a9e4 100644 --- a/youtube_dl/PostProcessor.py +++ b/youtube_dl/PostProcessor.py @@ -10,6 +10,7 @@ from .utils import ( PostProcessingError, shell_quote, subtitles_filename, + prepend_extension, ) @@ -496,13 +497,11 @@ class FFmpegMetadataPP(FFmpegPostProcessor): return True, info filename = info['filepath'] - ext = os.path.splitext(filename)[1][1:] - temp_filename = filename + u'.temp' + temp_filename = prepend_extension(filename, 'temp') options = ['-c', 'copy'] for (name, value) in metadata.items(): options.extend(['-metadata', '%s=%s' % (name, value)]) - options.extend(['-f', ext]) self._downloader.to_screen(u'[ffmpeg] Adding metadata to \'%s\'' % filename) self.run_ffmpeg(filename, temp_filename, options) diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index da5143c8e..fc10fba63 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1119,3 +1119,8 @@ def parse_duration(s): if m.group('hours'): res += int(m.group('hours')) * 60 * 60 return res + + +def prepend_extension(filename, ext): + name, real_ext = os.path.splitext(filename) + return u'{0}.{1}{2}'.format(name, ext, real_ext)