[postprocessor/common:postprocessor/ffmpeg] Generalize utime
authorSergey M․ <dstftw@gmail.com>
Wed, 8 Apr 2015 15:40:31 +0000 (21:40 +0600)
committerSergey M․ <dstftw@gmail.com>
Wed, 8 Apr 2015 15:40:31 +0000 (21:40 +0600)
youtube_dl/postprocessor/common.py
youtube_dl/postprocessor/ffmpeg.py

index e54ae678da17bef5c5848bc7165d42d5eec912a4..ef9fdfa19a5562b6b85840ce129b632967b30326 100644 (file)
@@ -1,6 +1,11 @@
 from __future__ import unicode_literals
 
-from ..utils import PostProcessingError
+import os
+
+from ..utils import (
+    PostProcessingError,
+    encodeFilename,
+)
 
 
 class PostProcessor(object):
@@ -46,6 +51,12 @@ class PostProcessor(object):
         """
         return None, information  # by default, keep file and do nothing
 
+    def try_utime(self, path, atime, mtime, errnote='Cannot update utime of file'):
+        try:
+            os.utime(encodeFilename(path), (atime, mtime))
+        except Exception:
+            self._downloader.report_warning(errnote)
+
 
 class AudioConversionError(PostProcessingError):
     pass
index 5ef5e0e545ab498554b9c2eedd115b88a17248e6..8e99a3c2c461d300dbf077236907e0f80bd16e9b 100644 (file)
@@ -146,10 +146,7 @@ class FFmpegPostProcessor(PostProcessor):
             stderr = stderr.decode('utf-8', 'replace')
             msg = stderr.strip().split('\n')[-1]
             raise FFmpegPostProcessorError(msg)
-        try:
-            os.utime(encodeFilename(out_path), (oldest_mtime, oldest_mtime))
-        except Exception:
-            self._downloader.report_warning('Cannot update utime of file')
+        self.try_utime(out_path, oldest_mtime, oldest_mtime)
 
         if self._deletetempfiles:
             for ipath in input_paths:
@@ -284,10 +281,9 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):
 
         # Try to update the date time for extracted audio file.
         if information.get('filetime') is not None:
-            try:
-                os.utime(encodeFilename(new_path), (time.time(), information['filetime']))
-            except Exception:
-                self._downloader.report_warning('Cannot update utime of audio file')
+            self.try_utime(
+                new_path, time.time(), information['filetime'],
+                errnote='Cannot update utime of audio file')
 
         information['filepath'] = new_path
         return self._nopostoverwrites, information