[limelight] skip ism manifests and reduce requests

This commit is contained in:
Remita Amine 2016-08-31 18:31:49 +01:00
parent 7a3e849f6e
commit f8fd510eb4
1 changed files with 8 additions and 4 deletions

View File

@ -34,11 +34,12 @@ class LimelightBaseIE(InfoExtractor):
def _extract_info(self, streams, mobile_urls, properties): def _extract_info(self, streams, mobile_urls, properties):
video_id = properties['media_id'] video_id = properties['media_id']
formats = [] formats = []
urls = []
for stream in streams: for stream in streams:
stream_url = stream.get('url') stream_url = stream.get('url')
if not stream_url or stream.get('drmProtected'): if not stream_url or stream.get('drmProtected') or stream_url in urls:
continue continue
urls.append(stream_url)
ext = determine_ext(stream_url) ext = determine_ext(stream_url)
if ext == 'f4m': if ext == 'f4m':
formats.extend(self._extract_f4m_formats( formats.extend(self._extract_f4m_formats(
@ -58,9 +59,11 @@ class LimelightBaseIE(InfoExtractor):
format_id = 'rtmp' format_id = 'rtmp'
if stream.get('videoBitRate'): if stream.get('videoBitRate'):
format_id += '-%d' % int_or_none(stream['videoBitRate']) format_id += '-%d' % int_or_none(stream['videoBitRate'])
http_url = 'http://%s/%s' % (rtmp.group('host').replace('csl.', 'cpl.'), rtmp.group('playpath')[4:])
urls.append(http_url)
http_fmt = fmt.copy() http_fmt = fmt.copy()
http_fmt.update({ http_fmt.update({
'url': 'http://%s/%s' % (rtmp.group('host').replace('csl.', 'cpl.'), rtmp.group('playpath')[4:]), 'url': http_url,
'format_id': format_id.replace('rtmp', 'http'), 'format_id': format_id.replace('rtmp', 'http'),
}) })
formats.append(http_fmt) formats.append(http_fmt)
@ -76,8 +79,9 @@ class LimelightBaseIE(InfoExtractor):
for mobile_url in mobile_urls: for mobile_url in mobile_urls:
media_url = mobile_url.get('mobileUrl') media_url = mobile_url.get('mobileUrl')
format_id = mobile_url.get('targetMediaPlatform') format_id = mobile_url.get('targetMediaPlatform')
if not media_url or format_id == 'Widevine': if not media_url or format_id in ('Widevine', 'SmoothStreaming') or media_url in urls:
continue continue
urls.append(media_url)
ext = determine_ext(media_url) ext = determine_ext(media_url)
if ext == 'm3u8': if ext == 'm3u8':
formats.extend(self._extract_m3u8_formats( formats.extend(self._extract_m3u8_formats(