|
@@ -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'],
|