[YoutubeDL] Handle out-of-range timestamps (#5826)
authorSergey M․ <dstftw@gmail.com>
Mon, 8 Jun 2015 15:05:17 +0000 (21:05 +0600)
committerSergey M․ <dstftw@gmail.com>
Mon, 8 Jun 2015 15:05:17 +0000 (21:05 +0600)
youtube_dl/YoutubeDL.py

index aa6ec9d9a0721efbd5257750fda37b86fe024d8b..b1f792d4ef8815dc8cfb4471cdd6f0e47a93e8f7 100755 (executable)
@@ -1016,13 +1016,13 @@ class YoutubeDL(object):
             info_dict['display_id'] = info_dict['id']
 
         if info_dict.get('upload_date') is None and info_dict.get('timestamp') is not None:
-            # Working around negative timestamps in Windows
-            # (see http://bugs.python.org/issue1646728)
-            if info_dict['timestamp'] < 0 and os.name == 'nt':
-                info_dict['timestamp'] = 0
-            upload_date = datetime.datetime.utcfromtimestamp(
-                info_dict['timestamp'])
-            info_dict['upload_date'] = upload_date.strftime('%Y%m%d')
+            # Working around out-of-range timestamp values (e.g. negative ones on Windows,
+            # see http://bugs.python.org/issue1646728)
+            try:
+                upload_date = datetime.datetime.utcfromtimestamp(info_dict['timestamp'])
+                info_dict['upload_date'] = upload_date.strftime('%Y%m%d')
+            except (ValueError, OverflowError, OSError):
+                pass
 
         if self.params.get('listsubtitles', False):
             if 'automatic_captions' in info_dict: