'description': 'md5:a950cc4285c43e44d763d036710cd9cd',
'timestamp': 1368213670,
'upload_date': '20130510',
- 'uploader_id': 1589608506001,
+ 'uploader_id': '1589608506001',
}
},
{
'uploader': 'Oracle',
'timestamp': 1344975024,
'upload_date': '20120814',
- 'uploader_id': 1460825906,
+ 'uploader_id': '1460825906',
},
},
{
'uploader': 'Mashable',
'timestamp': 1382041798,
'upload_date': '20131017',
- 'uploader_id': 1130468786001,
+ 'uploader_id': '1130468786001',
},
},
{
'description': 'UCI MTB World Cup 2014: Fort William, UK - Downhill Finals',
'timestamp': 1409122195,
'upload_date': '20140827',
- 'uploader_id': 710858724001,
+ 'uploader_id': '710858724001',
},
},
{
playlist_title=playlist_info['mediaCollectionDTO']['displayName'])
def _extract_video_info(self, video_info):
+ publisher_id = video_info.get('publisherId')
info = {
'id': compat_str(video_info['id']),
'title': video_info['displayName'].strip(),
'description': video_info.get('shortDescription'),
'thumbnail': video_info.get('videoStillURL') or video_info.get('thumbnailURL'),
'uploader': video_info.get('publisherName'),
- 'uploader_id': video_info.get('publisherId'),
+ 'uploader_id': compat_str(publisher_id) if publisher_id else None,
'duration': float_or_none(video_info.get('length'), 1000),
'timestamp': int_or_none(video_info.get('creationDate'), 1000),
}
ext = 'flv'
if ext is None:
ext = determine_ext(url)
- tbr = int_or_none(rend.get('encodingRate'), 1000),
+ tbr = int_or_none(rend.get('encodingRate'), 1000)
a_format = {
'format_id': 'http%s' % ('-%s' % tbr if tbr else ''),
'url': url,
raise ExtractorError(json_data[0]['message'], expected=True)
raise
- title = json_data['name']
+ title = json_data['name'].strip()
formats = []
for source in json_data.get('sources', []):
formats.append(f)
self._sort_formats(formats)
- description = json_data.get('description')
- thumbnail = json_data.get('thumbnail')
- timestamp = parse_iso8601(json_data.get('published_at'))
- duration = float_or_none(json_data.get('duration'), 1000)
- tags = json_data.get('tags', [])
+ subtitles = {}
+ for text_track in json_data.get('text_tracks', []):
+ if text_track.get('src'):
+ subtitles.setdefault(text_track.get('srclang'), []).append({
+ 'url': text_track['src'],
+ })
return {
'id': video_id,
'title': title,
- 'description': description,
- 'thumbnail': thumbnail,
- 'duration': duration,
- 'timestamp': timestamp,
+ 'description': json_data.get('description'),
+ 'thumbnail': json_data.get('thumbnail') or json_data.get('poster'),
+ 'duration': float_or_none(json_data.get('duration'), 1000),
+ 'timestamp': parse_iso8601(json_data.get('published_at')),
'uploader_id': account_id,
'formats': formats,
- 'tags': tags,
+ 'subtitles': subtitles,
+ 'tags': json_data.get('tags', []),
}