Updated to stamp extracted audio file with HTTP last modified date.
authorKegan <kegan@kegan.info>
Sat, 23 Apr 2011 06:55:40 +0000 (14:55 +0800)
committerPhilipp Hagemeister <phihag@phihag.de>
Thu, 15 Sep 2011 10:04:54 +0000 (12:04 +0200)
youtube-dl

index 4f6706e..c41228c 100755 (executable)
@@ -625,11 +625,12 @@ class FileDownloader(object):
                        return
                filetime = timeconvert(timestr)
                if filetime is None:
-                       return
+                       return filetime
                try:
                        os.utime(filename, (time.time(), filetime))
                except:
                        pass
+               return filetime
 
        def report_writedescription(self, descfn):
                """ Report that the description file is being written """
@@ -772,7 +773,8 @@ class FileDownloader(object):
 
                if not self.params.get('skip_download', False):
                        try:
-                               success = self._do_download(filename, info_dict['url'].encode('utf-8'), info_dict.get('player_url', None))
+                               success,add_data = self._do_download(filename, info_dict['url'].encode('utf-8'), info_dict.get('player_url', None))
+                               info_dict.update(add_data)
                        except (OSError, IOError), err:
                                raise UnavailableVideoError
                        except (urllib2.URLError, httplib.HTTPException, socket.error), err:
@@ -992,10 +994,11 @@ class FileDownloader(object):
                self.try_rename(tmpfilename, filename)
 
                # Update file modification time
+               filetime = None
                if self.params.get('updatetime', True):
-                       self.try_utime(filename, data.info().get('last-modified', None))
+                       filetime = self.try_utime(filename, data.info().get('last-modified', None))
 
-               return True
+               return True, {'filetime': filetime}
 
 
 class InfoExtractor(object):
@@ -3355,6 +3358,13 @@ class FFmpegExtractAudioPP(PostProcessor):
                        self._downloader.to_stderr(u'WARNING: error running ffmpeg')
                        return None
 
+               # Try to update the date time for extracted audio file.
+               if information.get('filetime') is not None:
+                       try:
+                               os.utime(new_path, (time.time(), information['filetime']))
+                       except:
+                               self._downloader.to_stderr(u'WARNING: Cannot update utime of audio file')
+
                try:
                        os.remove(path)
                except (IOError, OSError):