|
@@ -25,6 +25,12 @@ class ArchiveOrgIE(InfoExtractor):
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ def get_optional_metadata(self, data, field):
|
|
|
+ try:
|
|
|
+ return data['metadata'][field][0]
|
|
|
+ except KeyError:
|
|
|
+ return None
|
|
|
+
|
|
|
def _real_extract(self, url):
|
|
|
mobj = re.match(self._VALID_URL, url)
|
|
|
video_id = mobj.group('id')
|
|
@@ -33,10 +39,12 @@ class ArchiveOrgIE(InfoExtractor):
|
|
|
json_data = self._download_webpage(json_url, video_id)
|
|
|
data = json.loads(json_data)
|
|
|
|
|
|
- title = data['metadata']['title'][0]
|
|
|
- description = data['metadata']['description'][0]
|
|
|
- uploader = data['metadata']['creator'][0]
|
|
|
- upload_date = unified_strdate(data['metadata']['date'][0])
|
|
|
+ title = self.get_optional_metadata(data, 'title')
|
|
|
+ description = self.get_optional_metadata(data, 'description')
|
|
|
+ uploader = self.get_optional_metadata(data, 'creator')
|
|
|
+ upload_date = self.get_optional_metadata(data, 'date')
|
|
|
+ if upload_date:
|
|
|
+ upload_date = unified_strdate(upload_date)
|
|
|
|
|
|
formats = [
|
|
|
{
|