|
@@ -368,9 +368,7 @@ class GloboIE(InfoExtractor):
|
|
|
|
|
|
for resource in video['resources']:
|
|
|
resource_id = resource.get('_id')
|
|
|
- resource_height = resource.get('height')
|
|
|
-
|
|
|
- if not (resource_id or resource_height):
|
|
|
+ if not resource_id:
|
|
|
continue
|
|
|
|
|
|
security = self._download_json(
|
|
@@ -396,11 +394,16 @@ class GloboIE(InfoExtractor):
|
|
|
signed_md5 = self.MD5.b64_md5(received_md5 + compat_str(sign_time) + padding)
|
|
|
signed_hash = hash_code + compat_str(received_time) + received_random + compat_str(sign_time) + padding + signed_md5
|
|
|
|
|
|
- formats.append({
|
|
|
- 'url': '%s?h=%s&k=%s' % (resource['url'], signed_hash, 'flash'),
|
|
|
- 'format_id': resource_id,
|
|
|
- 'height': resource_height
|
|
|
- })
|
|
|
+ resource_url = resource['url']
|
|
|
+ signed_url = '%s?h=%s&k=%s' % (resource_url, signed_hash, 'flash')
|
|
|
+ if resource_id.endswith('m3u8') or resource_url.endswith('.m3u8'):
|
|
|
+ formats.extend(self._extract_m3u8_formats(signed_url, resource_id, 'mp4'))
|
|
|
+ else:
|
|
|
+ formats.append({
|
|
|
+ 'url': signed_url,
|
|
|
+ 'format_id': resource_id,
|
|
|
+ 'height': resource.get('height'),
|
|
|
+ })
|
|
|
|
|
|
self._sort_formats(formats)
|
|
|
|