|
|
|
@ -46,6 +46,7 @@ class AzubuIE(InfoExtractor):
|
|
|
|
|
'uploader_id': 272749,
|
|
|
|
|
'view_count': int,
|
|
|
|
|
},
|
|
|
|
|
'skip': 'Channel offline',
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
@ -56,22 +57,26 @@ class AzubuIE(InfoExtractor):
|
|
|
|
|
'http://www.azubu.tv/api/video/%s' % video_id, video_id)['data']
|
|
|
|
|
|
|
|
|
|
title = data['title'].strip()
|
|
|
|
|
description = data['description']
|
|
|
|
|
thumbnail = data['thumbnail']
|
|
|
|
|
view_count = data['view_count']
|
|
|
|
|
uploader = data['user']['username']
|
|
|
|
|
uploader_id = data['user']['id']
|
|
|
|
|
description = data.get('description')
|
|
|
|
|
thumbnail = data.get('thumbnail')
|
|
|
|
|
view_count = data.get('view_count')
|
|
|
|
|
user = data.get('user', {})
|
|
|
|
|
uploader = user.get('username')
|
|
|
|
|
uploader_id = user.get('id')
|
|
|
|
|
|
|
|
|
|
stream_params = json.loads(data['stream_params'])
|
|
|
|
|
|
|
|
|
|
timestamp = float_or_none(stream_params['creationDate'], 1000)
|
|
|
|
|
duration = float_or_none(stream_params['length'], 1000)
|
|
|
|
|
timestamp = float_or_none(stream_params.get('creationDate'), 1000)
|
|
|
|
|
duration = float_or_none(stream_params.get('length'), 1000)
|
|
|
|
|
|
|
|
|
|
renditions = stream_params.get('renditions') or []
|
|
|
|
|
video = stream_params.get('FLVFullLength') or stream_params.get('videoFullLength')
|
|
|
|
|
if video:
|
|
|
|
|
renditions.append(video)
|
|
|
|
|
|
|
|
|
|
if not renditions and not user.get('channel', {}).get('is_live', True):
|
|
|
|
|
raise ExtractorError('%s said: channel is offline.' % self.IE_NAME, expected=True)
|
|
|
|
|
|
|
|
|
|
formats = [{
|
|
|
|
|
'url': fmt['url'],
|
|
|
|
|
'width': fmt['frameWidth'],
|
|
|
|
|