|
|
@ -34,11 +34,12 @@ class LimelightBaseIE(InfoExtractor): |
|
|
|
def _extract_info(self, streams, mobile_urls, properties): |
|
|
|
video_id = properties['media_id'] |
|
|
|
formats = [] |
|
|
|
|
|
|
|
urls = [] |
|
|
|
for stream in streams: |
|
|
|
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 |
|
|
|
urls.append(stream_url) |
|
|
|
ext = determine_ext(stream_url) |
|
|
|
if ext == 'f4m': |
|
|
|
formats.extend(self._extract_f4m_formats( |
|
|
@ -58,9 +59,11 @@ class LimelightBaseIE(InfoExtractor): |
|
|
|
format_id = 'rtmp' |
|
|
|
if stream.get('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.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'), |
|
|
|
}) |
|
|
|
formats.append(http_fmt) |
|
|
@ -76,8 +79,9 @@ class LimelightBaseIE(InfoExtractor): |
|
|
|
for mobile_url in mobile_urls: |
|
|
|
media_url = mobile_url.get('mobileUrl') |
|
|
|
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 |
|
|
|
urls.append(media_url) |
|
|
|
ext = determine_ext(media_url) |
|
|
|
if ext == 'm3u8': |
|
|
|
formats.extend(self._extract_m3u8_formats( |
|
|
|