mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-14 23:32:33 +00:00
[archiveorg] most metadata fields are optional
Example: https://archive.org/details/Cops1922
This commit is contained in:
parent
5a18403057
commit
ff7a07d5c4
1 changed files with 12 additions and 4 deletions
|
@ -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 = [
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue