diff options
-rw-r--r-- | youtube_dl/extractor/globo.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/youtube_dl/extractor/globo.py b/youtube_dl/extractor/globo.py index d936be384..29638a194 100644 --- a/youtube_dl/extractor/globo.py +++ b/youtube_dl/extractor/globo.py @@ -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) |