Browse Source

[archiveorg] most metadata fields are optional

Example: https://archive.org/details/Cops1922
totalwebcasting
Johannes Knoedtel 10 years ago
parent
commit
ff7a07d5c4
1 changed files with 12 additions and 4 deletions
  1. +12
    -4
      youtube_dl/extractor/archiveorg.py

+ 12
- 4
youtube_dl/extractor/archiveorg.py View File

@ -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): def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url) mobj = re.match(self._VALID_URL, url)
video_id = mobj.group('id') video_id = mobj.group('id')
@ -33,10 +39,12 @@ class ArchiveOrgIE(InfoExtractor):
json_data = self._download_webpage(json_url, video_id) json_data = self._download_webpage(json_url, video_id)
data = json.loads(json_data) 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 = [ formats = [
{ {


Loading…
Cancel
Save