diff options
Diffstat (limited to 'youtube_dl/extractor/limelight.py')
| -rw-r--r-- | youtube_dl/extractor/limelight.py | 27 | 
1 files changed, 16 insertions, 11 deletions
| diff --git a/youtube_dl/extractor/limelight.py b/youtube_dl/extractor/limelight.py index 5d2c3e256..0d7abbaa8 100644 --- a/youtube_dl/extractor/limelight.py +++ b/youtube_dl/extractor/limelight.py @@ -37,11 +37,12 @@ class LimelightBaseIE(InfoExtractor):          for stream in streams:              stream_url = stream.get('url') -            if not stream_url: +            if not stream_url or stream.get('previewStream') or stream.get('drmProtected'):                  continue -            if '.f4m' in stream_url: +            ext = determine_ext(stream_url) +            if ext == 'f4m':                  formats.extend(self._extract_f4m_formats( -                    stream_url, video_id, fatal=False)) +                    stream_url, video_id, f4m_id='hds', fatal=False))              else:                  fmt = {                      'url': stream_url, @@ -50,7 +51,7 @@ class LimelightBaseIE(InfoExtractor):                      'fps': float_or_none(stream.get('videoFrameRate')),                      'width': int_or_none(stream.get('videoWidthInPixels')),                      'height': int_or_none(stream.get('videoHeightInPixels')), -                    'ext': determine_ext(stream_url) +                    'ext': ext,                  }                  rtmp = re.search(r'^(?P<url>rtmpe?://[^/]+/(?P<app>.+))/(?P<playpath>mp4:.+)$', stream_url)                  if rtmp: @@ -68,18 +69,23 @@ class LimelightBaseIE(InfoExtractor):          for mobile_url in mobile_urls:              media_url = mobile_url.get('mobileUrl') -            if not media_url: -                continue              format_id = mobile_url.get('targetMediaPlatform') -            if determine_ext(media_url) == 'm3u8': +            if not media_url or format_id == 'Widevine': +                continue +            ext = determine_ext(media_url) +            if ext == 'm3u8':                  formats.extend(self._extract_m3u8_formats(                      media_url, video_id, 'mp4', 'm3u8_native',                      m3u8_id=format_id, fatal=False)) +            elif ext == 'f4m': +                formats.extend(self._extract_f4m_formats( +                    stream_url, video_id, f4m_id=format_id, fatal=False))              else:                  formats.append({                      'url': media_url,                      'format_id': format_id,                      'preference': -1, +                    'ext': ext,                  })          self._sort_formats(formats) @@ -145,7 +151,7 @@ class LimelightMediaIE(LimelightBaseIE):          'url': 'http://link.videoplatform.limelight.com/media/?mediaId=3ffd040b522b4485b6d84effc750cd86',          'info_dict': {              'id': '3ffd040b522b4485b6d84effc750cd86', -            'ext': 'flv', +            'ext': 'mp4',              'title': 'HaP and the HB Prince Trailer',              'description': 'md5:8005b944181778e313d95c1237ddb640',              'thumbnail': 're:^https?://.*\.jpeg$', @@ -154,7 +160,7 @@ class LimelightMediaIE(LimelightBaseIE):              'upload_date': '20090604',          },          'params': { -            # rtmp download +            # m3u8 download              'skip_download': True,          },      }, { @@ -164,7 +170,6 @@ class LimelightMediaIE(LimelightBaseIE):              'id': 'a3e00274d4564ec4a9b29b9466432335',              'ext': 'flv',              'title': '3Play Media Overview Video', -            'description': '',              'thumbnail': 're:^https?://.*\.jpeg$',              'duration': 78.101,              'timestamp': 1338929955, @@ -172,7 +177,7 @@ class LimelightMediaIE(LimelightBaseIE):              'subtitles': 'mincount:9',          },          'params': { -            # rtmp download +            # m3u8 download              'skip_download': True,          },      }, { | 
