unified_timestamp,
url_or_none,
urlhandle_detect_ext,
+ variadic,
)
'release_date': '19681210',
'timestamp': 1268695290,
'upload_date': '20100315',
- 'creator': 'SRI International',
+ 'creators': ['SRI International'],
'uploader': 'laura@archive.org',
'thumbnail': r're:https://archive\.org/download/.*\.jpg',
- 'release_year': 1968,
'display_id': 'XD300-23_68HighlightsAResearchCntAugHumanIntellect.cdr',
'track': 'XD300-23 68HighlightsAResearchCntAugHumanIntellect',
'title': 'Turning',
'ext': 'flac',
'track': 'Turning',
- 'creator': 'Grateful Dead',
+ 'creators': ['Grateful Dead'],
'display_id': 'gd1977-05-08d01t01.flac',
'track_number': 1,
'album': '1977-05-08 - Barton Hall - Cornell University',
'location': 'Barton Hall - Cornell University',
'duration': 438.68,
'track': 'Deal',
- 'creator': 'Grateful Dead',
+ 'creators': ['Grateful Dead'],
'album': '1977-05-08 - Barton Hall - Cornell University',
'release_date': '19770508',
'display_id': 'gd1977-05-08d01t07.flac',
- 'release_year': 1977,
'track_number': 7,
},
}, {
'upload_date': '20160610',
'description': 'md5:f70956a156645a658a0dc9513d9e78b7',
'uploader': 'dimitrios@archive.org',
- 'creator': ['British Broadcasting Corporation', 'Time-Life Films'],
+ 'creators': ['British Broadcasting Corporation', 'Time-Life Films'],
'timestamp': 1465594947,
},
'playlist': [
'title': m['title'],
'description': clean_html(m.get('description')),
'uploader': dict_get(m, ['uploader', 'adder']),
- 'creator': m.get('creator'),
+ 'creators': traverse_obj(m, ('creator', {variadic}, {lambda x: x[0] and list(x)})),
'license': m.get('licenseurl'),
'release_date': unified_strdate(m.get('date')),
'timestamp': unified_timestamp(dict_get(m, ['publicdate', 'addeddate'])),
'title': f.get('title') or f['name'],
'display_id': f['name'],
'description': clean_html(f.get('description')),
- 'creator': f.get('creator'),
+ 'creators': traverse_obj(f, ('creator', {variadic}, {lambda x: x[0] and list(x)})),
'duration': parse_duration(f.get('length')),
'track_number': int_or_none(f.get('track')),
'album': f.get('album'),
is_logged_in = bool(self._get_cookies('https://archive.org').get('logged-in-sig'))
if extension in KNOWN_EXTENSIONS and (not f.get('private') or is_logged_in):
entry['formats'].append({
- 'url': 'https://archive.org/download/' + identifier + '/' + f['name'],
+ 'url': 'https://archive.org/download/' + identifier + '/' + urllib.parse.quote(f['name']),
'format': f.get('format'),
'width': int_or_none(f.get('width')),
'height': int_or_none(f.get('height')),