mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-16 14:55:45 +00:00
[postprocessor/common:postprocessor/ffmpeg] Generalize utime
This commit is contained in:
parent
bca788ab1d
commit
dd29eb7f81
2 changed files with 16 additions and 9 deletions
|
@ -1,6 +1,11 @@
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from ..utils import PostProcessingError
|
import os
|
||||||
|
|
||||||
|
from ..utils import (
|
||||||
|
PostProcessingError,
|
||||||
|
encodeFilename,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class PostProcessor(object):
|
class PostProcessor(object):
|
||||||
|
@ -46,6 +51,12 @@ class PostProcessor(object):
|
||||||
"""
|
"""
|
||||||
return None, information # by default, keep file and do nothing
|
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):
|
class AudioConversionError(PostProcessingError):
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -146,10 +146,7 @@ class FFmpegPostProcessor(PostProcessor):
|
||||||
stderr = stderr.decode('utf-8', 'replace')
|
stderr = stderr.decode('utf-8', 'replace')
|
||||||
msg = stderr.strip().split('\n')[-1]
|
msg = stderr.strip().split('\n')[-1]
|
||||||
raise FFmpegPostProcessorError(msg)
|
raise FFmpegPostProcessorError(msg)
|
||||||
try:
|
self.try_utime(out_path, oldest_mtime, oldest_mtime)
|
||||||
os.utime(encodeFilename(out_path), (oldest_mtime, oldest_mtime))
|
|
||||||
except Exception:
|
|
||||||
self._downloader.report_warning('Cannot update utime of file')
|
|
||||||
|
|
||||||
if self._deletetempfiles:
|
if self._deletetempfiles:
|
||||||
for ipath in input_paths:
|
for ipath in input_paths:
|
||||||
|
@ -284,10 +281,9 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):
|
||||||
|
|
||||||
# Try to update the date time for extracted audio file.
|
# Try to update the date time for extracted audio file.
|
||||||
if information.get('filetime') is not None:
|
if information.get('filetime') is not None:
|
||||||
try:
|
self.try_utime(
|
||||||
os.utime(encodeFilename(new_path), (time.time(), information['filetime']))
|
new_path, time.time(), information['filetime'],
|
||||||
except Exception:
|
errnote='Cannot update utime of audio file')
|
||||||
self._downloader.report_warning('Cannot update utime of audio file')
|
|
||||||
|
|
||||||
information['filepath'] = new_path
|
information['filepath'] = new_path
|
||||||
return self._nopostoverwrites, information
|
return self._nopostoverwrites, information
|
||||||
|
|
Loading…
Reference in a new issue