mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 22:47:06 -05:00 
			
		
		
		
	[archiveorg] most metadata fields are optional
Example: https://archive.org/details/Cops1922
This commit is contained in:
		@@ -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 = [
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user