[extractor/common] Extract more metadata for VideoObject in _json_ld
authorSergey M․ <dstftw@gmail.com>
Fri, 8 Jul 2016 20:27:11 +0000 (03:27 +0700)
committerSergey M․ <dstftw@gmail.com>
Fri, 8 Jul 2016 20:27:11 +0000 (03:27 +0700)
youtube_dl/extractor/common.py

index 0cb5e5bb06604bd9bb07adc91d4b075e80e0645d..9ffe64d05533ae5c5ac2a8d21bb1223b388e9789 100644 (file)
@@ -44,6 +44,7 @@ from ..utils import (
     sanitized_Request,
     unescapeHTML,
     unified_strdate,
+    unified_timestamp,
     url_basename,
     xpath_element,
     xpath_text,
@@ -840,10 +841,16 @@ class InfoExtractor(object):
                 })
             elif item_type == 'VideoObject':
                 info.update({
+                    'url': json_ld.get('contentUrl'),
                     'title': unescapeHTML(json_ld.get('name')),
                     'description': unescapeHTML(json_ld.get('description')),
-                    'upload_date': unified_strdate(json_ld.get('upload_date')),
-                    'url': unescapeHTML(json_ld.get('contentUrl')),
+                    'thumbnail': json_ld.get('thumbnailUrl'),
+                    'duration': parse_duration(json_ld.get('duration')),
+                    'timestamp': unified_timestamp(json_ld.get('uploadDate')),
+                    'filesize': float_or_none(json_ld.get('contentSize')),
+                    'tbr': int_or_none(json_ld.get('bitrate')),
+                    'width': int_or_none(json_ld.get('width')),
+                    'height': int_or_none(json_ld.get('height')),
                 })
         return dict((k, v) for k, v in info.items() if v is not None)