diff options
32 files changed, 99 insertions, 215 deletions
| diff --git a/youtube_dl/extractor/amp.py b/youtube_dl/extractor/amp.py index dcc3c97f1..1035d1c48 100644 --- a/youtube_dl/extractor/amp.py +++ b/youtube_dl/extractor/amp.py @@ -53,16 +53,12 @@ class AMPIE(InfoExtractor):              media = media_data['@attributes']              media_type = media['type']              if media_type == 'video/f4m': -                f4m_formats = self._extract_f4m_formats( +                formats.extend(self._extract_f4m_formats(                      media['url'] + '?hdcore=3.4.0&plugin=aasp-3.4.0.132.124', -                    video_id, f4m_id='hds', fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                    video_id, f4m_id='hds', fatal=False))              elif media_type == 'application/x-mpegURL': -                m3u8_formats = self._extract_m3u8_formats( -                    media['url'], video_id, 'mp4', m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats( +                    media['url'], video_id, 'mp4', m3u8_id='hls', fatal=False))              else:                  formats.append({                      'format_id': media_data['media-category']['@attributes']['label'], diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index 687eb9f82..9fb84911a 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -113,16 +113,12 @@ class ARDMediathekIE(InfoExtractor):                      if quality != 'auto' and ext in ('f4m', 'm3u8'):                          continue                      if ext == 'f4m': -                        f4m_formats = self._extract_f4m_formats( +                        formats.extend(self._extract_f4m_formats(                              stream_url + '?hdcore=3.1.1&plugin=aasp-3.1.1.69.124', -                            video_id, preference=-1, f4m_id='hds', fatal=False) -                        if f4m_formats: -                            formats.extend(f4m_formats) +                            video_id, preference=-1, f4m_id='hds', fatal=False))                      elif ext == 'm3u8': -                        m3u8_formats = self._extract_m3u8_formats( -                            stream_url, video_id, 'mp4', preference=1, m3u8_id='hls', fatal=False) -                        if m3u8_formats: -                            formats.extend(m3u8_formats) +                        formats.extend(self._extract_m3u8_formats( +                            stream_url, video_id, 'mp4', preference=1, m3u8_id='hls', fatal=False))                      else:                          if server and server.startswith('rtmp'):                              f = { diff --git a/youtube_dl/extractor/atresplayer.py b/youtube_dl/extractor/atresplayer.py index 7ac3044c7..3fb042cea 100644 --- a/youtube_dl/extractor/atresplayer.py +++ b/youtube_dl/extractor/atresplayer.py @@ -134,10 +134,8 @@ class AtresPlayerIE(InfoExtractor):          m3u8_url = player.get('urlVideoHls')          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats( -                m3u8_url, episode_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats( +                m3u8_url, episode_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))          timestamp = int_or_none(self._download_webpage(              self._TIME_API_URL, @@ -170,9 +168,7 @@ class AtresPlayerIE(InfoExtractor):                  continue              else:                  f4m_url = video_url[:-9] + '/manifest.f4m' -            f4m_formats = self._extract_f4m_formats(f4m_url, video_id, f4m_id='hds', fatal=False) -            if f4m_formats: -                formats.extend(f4m_formats) +            formats.extend(self._extract_f4m_formats(f4m_url, video_id, f4m_id='hds', fatal=False))          self._sort_formats(formats)          path_data = player.get('pathData') diff --git a/youtube_dl/extractor/audimedia.py b/youtube_dl/extractor/audimedia.py index 4382a302b..9b037bb0c 100644 --- a/youtube_dl/extractor/audimedia.py +++ b/youtube_dl/extractor/audimedia.py @@ -45,15 +45,11 @@ class AudiMediaIE(InfoExtractor):              stream_url_hls = json_data.get('stream_url_hls')              if stream_url_hls: -                m3u8_formats = self._extract_m3u8_formats(stream_url_hls, video_id, 'mp4', entry_protocol='m3u8_native', m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats(stream_url_hls, video_id, 'mp4', entry_protocol='m3u8_native', m3u8_id='hls', fatal=False))              stream_url_hds = json_data.get('stream_url_hds')              if stream_url_hds: -                f4m_formats = self._extract_f4m_formats(json_data.get('stream_url_hds') + '?hdcore=3.4.0', video_id, -1, f4m_id='hds', fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                formats.extend(self._extract_f4m_formats(json_data.get('stream_url_hds') + '?hdcore=3.4.0', video_id, -1, f4m_id='hds', fatal=False))              for video_version in json_data.get('video_versions'):                  video_version_url = video_version.get('download_url') or video_version.get('stream_url') diff --git a/youtube_dl/extractor/bbc.py b/youtube_dl/extractor/bbc.py index 691aecc0d..923273fb2 100644 --- a/youtube_dl/extractor/bbc.py +++ b/youtube_dl/extractor/bbc.py @@ -223,11 +223,9 @@ class BBCCoUkIE(InfoExtractor):              elif transfer_format == 'dash':                  pass              elif transfer_format == 'hls': -                m3u8_formats = self._extract_m3u8_formats( +                formats.extend(self._extract_m3u8_formats(                      href, programme_id, ext='mp4', entry_protocol='m3u8_native', -                    m3u8_id=supplier, fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                    m3u8_id=supplier, fatal=False))              # Direct link              else:                  formats.append({ diff --git a/youtube_dl/extractor/bloomberg.py b/youtube_dl/extractor/bloomberg.py index ebeef8f2a..13343bc25 100644 --- a/youtube_dl/extractor/bloomberg.py +++ b/youtube_dl/extractor/bloomberg.py @@ -41,15 +41,11 @@ class BloombergIE(InfoExtractor):              if not stream_url:                  continue              if stream['muxing_format'] == 'TS': -                m3u8_formats = self._extract_m3u8_formats( -                    stream_url, video_id, 'mp4', m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats( +                    stream_url, video_id, 'mp4', m3u8_id='hls', fatal=False))              else: -                f4m_formats = self._extract_f4m_formats( -                    stream_url, video_id, f4m_id='hds', fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                formats.extend(self._extract_f4m_formats( +                    stream_url, video_id, f4m_id='hds', fatal=False))          self._sort_formats(formats)          return { diff --git a/youtube_dl/extractor/br.py b/youtube_dl/extractor/br.py index e66854538..11cf49851 100644 --- a/youtube_dl/extractor/br.py +++ b/youtube_dl/extractor/br.py @@ -121,15 +121,11 @@ class BRIE(InfoExtractor):              format_url = xpath_text(asset, ['downloadUrl', 'url'])              asset_type = asset.get('type')              if asset_type == 'HDS': -                f4m_formats = self._extract_f4m_formats( -                    format_url + '?hdcore=3.2.0', media_id, f4m_id='hds', fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                formats.extend(self._extract_f4m_formats( +                    format_url + '?hdcore=3.2.0', media_id, f4m_id='hds', fatal=False))              elif asset_type == 'HLS': -                m3u8_formats = self._extract_m3u8_formats( -                    format_url, media_id, 'mp4', 'm3u8_native', m3u8_id='hds', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats( +                    format_url, media_id, 'mp4', 'm3u8_native', m3u8_id='hds', fatal=False))              else:                  format_info = {                      'ext': xpath_text(asset, 'mediaType'), diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index 03a4f446e..c947337f9 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -469,11 +469,9 @@ class BrightcoveNewIE(InfoExtractor):              if source_type == 'application/x-mpegURL':                  if not src:                      continue -                m3u8_formats = self._extract_m3u8_formats( +                formats.extend(self._extract_m3u8_formats(                      src, video_id, 'mp4', entry_protocol='m3u8_native', -                    m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                    m3u8_id='hls', fatal=False))              else:                  streaming_src = source.get('streaming_src')                  stream_name, app_name = source.get('stream_name'), source.get('app_name') diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 34a28c126..655207447 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -910,10 +910,8 @@ class InfoExtractor(object):                  # may differ leading to inability to resolve the format by requested                  # bitrate in f4m downloader                  if determine_ext(manifest_url) == 'f4m': -                    f4m_formats = self._extract_f4m_formats( -                        manifest_url, video_id, preference, f4m_id, fatal=fatal) -                    if f4m_formats: -                        formats.extend(f4m_formats) +                    formats.extend(self._extract_f4m_formats( +                        manifest_url, video_id, preference, f4m_id, fatal=fatal))                      continue              tbr = int_or_none(media_el.attrib.get('bitrate'))              formats.append({ @@ -1147,10 +1145,8 @@ class InfoExtractor(object):              src_url = src if src.startswith('http') else compat_urlparse.urljoin(base, src)              if proto == 'm3u8' or src_ext == 'm3u8': -                m3u8_formats = self._extract_m3u8_formats( -                    src_url, video_id, ext or 'mp4', m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats( +                    src_url, video_id, ext or 'mp4', m3u8_id='hls', fatal=False))                  continue              if src_ext == 'f4m': @@ -1162,9 +1158,7 @@ class InfoExtractor(object):                      }                  f4m_url += '&' if '?' in f4m_url else '?'                  f4m_url += compat_urllib_parse.urlencode(f4m_params) -                f4m_formats = self._extract_f4m_formats(f4m_url, video_id, f4m_id='hds', fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                formats.extend(self._extract_f4m_formats(f4m_url, video_id, f4m_id='hds', fatal=False))                  continue              if src_url.startswith('http') and self._is_valid_url(src, video_id): diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 0c5b6617f..439fd42e8 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -148,15 +148,11 @@ class DailymotionIE(DailymotionBaseInfoExtractor):                          continue                      ext = determine_ext(media_url)                      if type_ == 'application/x-mpegURL' or ext == 'm3u8': -                        m3u8_formats = self._extract_m3u8_formats( -                            media_url, video_id, 'mp4', m3u8_id='hls', fatal=False) -                        if m3u8_formats: -                            formats.extend(m3u8_formats) +                        formats.extend(self._extract_m3u8_formats( +                            media_url, video_id, 'mp4', m3u8_id='hls', fatal=False))                      elif type_ == 'application/f4m' or ext == 'f4m': -                        f4m_formats = self._extract_f4m_formats( -                            media_url, video_id, preference=-1, f4m_id='hds', fatal=False) -                        if f4m_formats: -                            formats.extend(f4m_formats) +                        formats.extend(self._extract_f4m_formats( +                            media_url, video_id, preference=-1, f4m_id='hds', fatal=False))                      else:                          f = {                              'url': media_url, diff --git a/youtube_dl/extractor/dcn.py b/youtube_dl/extractor/dcn.py index 0d140f12f..8f48571de 100644 --- a/youtube_dl/extractor/dcn.py +++ b/youtube_dl/extractor/dcn.py @@ -56,10 +56,8 @@ class DCNBaseIE(InfoExtractor):          m3u8_url = self._html_search_regex(              r'file\s*:\s*"([^"]+)', webpage, 'm3u8 url', fatal=False)          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats( -                m3u8_url, video_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=None) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats( +                m3u8_url, video_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=None))          rtsp_url = self._search_regex(              r'<a[^>]+href="(rtsp://[^"]+)"', webpage, 'rtsp url', fatal=False) diff --git a/youtube_dl/extractor/eitb.py b/youtube_dl/extractor/eitb.py index c83845fc2..713cb7b32 100644 --- a/youtube_dl/extractor/eitb.py +++ b/youtube_dl/extractor/eitb.py @@ -65,18 +65,14 @@ class EitbIE(InfoExtractor):              if token_data:                  token = token_data.get('token')                  if token: -                    m3u8_formats = self._extract_m3u8_formats( -                        '%s?hdnts=%s' % (hls_url, token), video_id, m3u8_id='hls', fatal=False) -                    if m3u8_formats: -                        formats.extend(m3u8_formats) +                    formats.extend(self._extract_m3u8_formats( +                        '%s?hdnts=%s' % (hls_url, token), video_id, m3u8_id='hls', fatal=False))          hds_url = media.get('HDS_SURL')          if hds_url: -            f4m_formats = self._extract_f4m_formats( +            formats.extend(self._extract_f4m_formats(                  '%s?hdcore=3.7.0' % hds_url.replace('euskalsvod', 'euskalvod'), -                video_id, f4m_id='hds', fatal=False) -            if f4m_formats: -                formats.extend(f4m_formats) +                video_id, f4m_id='hds', fatal=False))          self._sort_formats(formats) diff --git a/youtube_dl/extractor/funimation.py b/youtube_dl/extractor/funimation.py index d1a95d87f..0f37ed786 100644 --- a/youtube_dl/extractor/funimation.py +++ b/youtube_dl/extractor/funimation.py @@ -151,11 +151,9 @@ class FunimationIE(InfoExtractor):                          errors.append(format_url)                          continue                      if determine_ext(format_url) == 'm3u8': -                        m3u8_formats = self._extract_m3u8_formats( +                        formats.extend(self._extract_m3u8_formats(                              format_url + auth_token, display_id, 'mp4', entry_protocol='m3u8_native', -                            preference=preference, m3u8_id='%s-hls' % funimation_id, fatal=False) -                        if m3u8_formats: -                            formats.extend(m3u8_formats) +                            preference=preference, m3u8_id='%s-hls' % funimation_id, fatal=False))                      else:                          tbr = int_or_none(self._search_regex(                              r'-(\d+)[Kk]', format_url, 'tbr', default=None)) diff --git a/youtube_dl/extractor/funnyordie.py b/youtube_dl/extractor/funnyordie.py index 7f21d7410..4c4a87e2a 100644 --- a/youtube_dl/extractor/funnyordie.py +++ b/youtube_dl/extractor/funnyordie.py @@ -51,10 +51,8 @@ class FunnyOrDieIE(InfoExtractor):          formats = [] -        m3u8_formats = self._extract_m3u8_formats( -            m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -        if m3u8_formats: -            formats.extend(m3u8_formats) +        formats.extend(self._extract_m3u8_formats( +            m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))          bitrates = [int(bitrate) for bitrate in re.findall(r'[,/]v(\d+)[,/]', m3u8_url)]          bitrates.sort() diff --git a/youtube_dl/extractor/globo.py b/youtube_dl/extractor/globo.py index c65ef6bcf..b241c4868 100644 --- a/youtube_dl/extractor/globo.py +++ b/youtube_dl/extractor/globo.py @@ -369,11 +369,9 @@ class GloboIE(InfoExtractor):              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'): -                m3u8_formats = self._extract_m3u8_formats( +                formats.extend(self._extract_m3u8_formats(                      signed_url, resource_id, 'mp4', entry_protocol='m3u8_native', -                    m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                    m3u8_id='hls', fatal=False))              else:                  formats.append({                      'url': signed_url, diff --git a/youtube_dl/extractor/hotstar.py b/youtube_dl/extractor/hotstar.py index 05d27e75d..a7c3ce4ab 100644 --- a/youtube_dl/extractor/hotstar.py +++ b/youtube_dl/extractor/hotstar.py @@ -55,9 +55,7 @@ class HotStarIE(InfoExtractor):                  format_url = format_data['src']                  ext = determine_ext(format_url)                  if ext == 'm3u8': -                    m3u8_formats = self._extract_m3u8_formats(format_url, video_id, 'mp4', m3u8_id='hls', fatal=False) -                    if m3u8_formats: -                        formats.extend(m3u8_formats) +                    formats.extend(self._extract_m3u8_formats(format_url, video_id, 'mp4', m3u8_id='hls', fatal=False))                  elif ext == 'f4m':                      # produce broken files                      continue diff --git a/youtube_dl/extractor/ign.py b/youtube_dl/extractor/ign.py index a2e18c8a7..d1c1c210c 100644 --- a/youtube_dl/extractor/ign.py +++ b/youtube_dl/extractor/ign.py @@ -129,14 +129,10 @@ class IGNIE(InfoExtractor):          formats = []          m3u8_url = api_data['refs'].get('m3uUrl')          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats(m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats(m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))          f4m_url = api_data['refs'].get('f4mUrl')          if f4m_url: -            f4m_formats = self._extract_f4m_formats(f4m_url, video_id, f4m_id='hds', fatal=False) -            if f4m_formats: -                formats.extend(f4m_formats) +            formats.extend(self._extract_f4m_formats(f4m_url, video_id, f4m_id='hds', fatal=False))          for asset in api_data['assets']:              formats.append({                  'url': asset['url'], diff --git a/youtube_dl/extractor/jwplatform.py b/youtube_dl/extractor/jwplatform.py index a92adf2b3..8e90d5986 100644 --- a/youtube_dl/extractor/jwplatform.py +++ b/youtube_dl/extractor/jwplatform.py @@ -44,10 +44,8 @@ class JWPlatformIE(InfoExtractor):              source_url = self._proto_relative_url(source['file'])              source_type = source.get('type') or ''              if source_type == 'application/vnd.apple.mpegurl': -                m3u8_formats = self._extract_m3u8_formats( -                    source_url, video_id, 'mp4', 'm3u8_native', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats( +                    source_url, video_id, 'mp4', 'm3u8_native', fatal=False))              elif source_type.startswith('audio'):                  formats.append({                      'url': source_url, diff --git a/youtube_dl/extractor/kaltura.py b/youtube_dl/extractor/kaltura.py index 4807c8110..ccbc39c66 100644 --- a/youtube_dl/extractor/kaltura.py +++ b/youtube_dl/extractor/kaltura.py @@ -163,10 +163,8 @@ class KalturaIE(InfoExtractor):          m3u8_url = info['dataUrl'].replace('format/url', 'format/applehttp')          if referrer:              m3u8_url += '?referrer=%s' % referrer -        m3u8_formats = self._extract_m3u8_formats( -            m3u8_url, entry_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -        if m3u8_formats: -            formats.extend(m3u8_formats) +        formats.extend(self._extract_m3u8_formats( +            m3u8_url, entry_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))          self._check_formats(formats, entry_id)          self._sort_formats(formats) diff --git a/youtube_dl/extractor/livestream.py b/youtube_dl/extractor/livestream.py index 688eb2308..38fb3d9e4 100644 --- a/youtube_dl/extractor/livestream.py +++ b/youtube_dl/extractor/livestream.py @@ -110,23 +110,17 @@ class LivestreamIE(InfoExtractor):          smil_url = video_data.get('smil_url')          if smil_url: -            smil_formats = self._extract_smil_formats(smil_url, video_id) -            if smil_formats: -                formats.extend(smil_formats) +            formats.extend(self._extract_smil_formats(smil_url, video_id))          m3u8_url = video_data.get('m3u8_url')          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats( -                m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats( +                m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))          f4m_url = video_data.get('f4m_url')          if f4m_url: -            f4m_formats = self._extract_f4m_formats( -                f4m_url, video_id, f4m_id='hds', fatal=False) -            if f4m_formats: -                formats.extend(f4m_formats) +            formats.extend(self._extract_f4m_formats( +                f4m_url, video_id, f4m_id='hds', fatal=False))          self._sort_formats(formats)          comments = [{ @@ -158,17 +152,13 @@ class LivestreamIE(InfoExtractor):          formats = []          smil_url = stream_info.get('play_url')          if smil_url: -            smil_formats = self._extract_smil_formats(smil_url, broadcast_id) -            if smil_formats: -                formats.extend(smil_formats) +            formats.extend(self._extract_smil_formats(smil_url, broadcast_id))          entry_protocol = 'm3u8' if is_live else 'm3u8_native'          m3u8_url = stream_info.get('m3u8_url')          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats( -                m3u8_url, broadcast_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats( +                m3u8_url, broadcast_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=False))          rtsp_url = stream_info.get('rtsp_url')          if rtsp_url: @@ -293,10 +283,8 @@ class LivestreamOriginalIE(InfoExtractor):          m3u8_url = video_data.get('httpUrl')          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats( -                m3u8_url, video_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats( +                m3u8_url, video_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=False))          rtsp_url = video_data.get('rtspUrl')          if rtsp_url: diff --git a/youtube_dl/extractor/nba.py b/youtube_dl/extractor/nba.py index 7c6b7841d..9d26030d3 100644 --- a/youtube_dl/extractor/nba.py +++ b/youtube_dl/extractor/nba.py @@ -68,13 +68,9 @@ class NBAIE(InfoExtractor):              if video_url.startswith('/'):                  continue              if video_url.endswith('.m3u8'): -                m3u8_formats = self._extract_m3u8_formats(video_url, video_id, m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats(video_url, video_id, m3u8_id='hls', fatal=False))              elif video_url.endswith('.f4m'): -                f4m_formats = self._extract_f4m_formats(video_url + '?hdcore=3.4.1.1', video_id, f4m_id='hds', fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                formats.extend(self._extract_f4m_formats(video_url + '?hdcore=3.4.1.1', video_id, f4m_id='hds', fatal=False))              else:                  key = video_file.attrib.get('bitrate')                  format_info = { diff --git a/youtube_dl/extractor/ooyala.py b/youtube_dl/extractor/ooyala.py index 8603fd692..3960d522e 100644 --- a/youtube_dl/extractor/ooyala.py +++ b/youtube_dl/extractor/ooyala.py @@ -44,17 +44,11 @@ class OoyalaBaseIE(InfoExtractor):                      urls.append(url)                      delivery_type = stream['delivery_type']                      if delivery_type == 'hls' or '.m3u8' in url: -                        m3u8_formats = self._extract_m3u8_formats(url, embed_code, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -                        if m3u8_formats: -                            formats.extend(m3u8_formats) +                        formats.extend(self._extract_m3u8_formats(url, embed_code, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))                      elif delivery_type == 'hds' or '.f4m' in url: -                        f4m_formats = self._extract_f4m_formats(url, embed_code, f4m_id='hds', fatal=False) -                        if f4m_formats: -                            formats.extend(f4m_formats) +                        formats.extend(self._extract_f4m_formats(url, embed_code, f4m_id='hds', fatal=False))                      elif '.smil' in url: -                        smil_formats = self._extract_smil_formats(url, embed_code, fatal=False) -                        if smil_formats: -                            formats.extend(smil_formats) +                        formats.extend(self._extract_smil_formats(url, embed_code, fatal=False))                      else:                          formats.append({                              'url': url, diff --git a/youtube_dl/extractor/rai.py b/youtube_dl/extractor/rai.py index 278b1d2bf..f2679591b 100644 --- a/youtube_dl/extractor/rai.py +++ b/youtube_dl/extractor/rai.py @@ -116,17 +116,13 @@ class RaiTVIE(InfoExtractor):                  ext = determine_ext(media_url)                  content_type = xpath_text(element, 'content-type')                  if ext == 'm3u8': -                    m3u8_formats = self._extract_m3u8_formats( +                    formats.extend(self._extract_m3u8_formats(                          media_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', -                        fatal=False) -                    if m3u8_formats: -                        formats.extend(m3u8_formats) +                        fatal=False))                  elif ext == 'f4m': -                    f4m_formats = self._extract_f4m_formats( +                    formats.extend(self._extract_f4m_formats(                          media_url + '?hdcore=3.7.0&plugin=aasp-3.7.0.39.44', -                        video_id, f4m_id='hds', fatal=False) -                    if f4m_formats: -                        formats.extend(f4m_formats) +                        video_id, f4m_id='hds', fatal=False))                  elif ext == 'stl':                      has_subtitle = True                  elif content_type.startswith('video/'): diff --git a/youtube_dl/extractor/rutube.py b/youtube_dl/extractor/rutube.py index 9db62adb1..c5c47d01e 100644 --- a/youtube_dl/extractor/rutube.py +++ b/youtube_dl/extractor/rutube.py @@ -58,15 +58,11 @@ class RutubeIE(InfoExtractor):          for format_id, format_url in options['video_balancer'].items():              ext = determine_ext(format_url)              if ext == 'm3u8': -                m3u8_formats = self._extract_m3u8_formats( -                    format_url, video_id, 'mp4', m3u8_id=format_id, fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats( +                    format_url, video_id, 'mp4', m3u8_id=format_id, fatal=False))              elif ext == 'f4m': -                f4m_formats = self._extract_f4m_formats( -                    format_url, video_id, f4m_id=format_id, fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                formats.extend(self._extract_f4m_formats( +                    format_url, video_id, f4m_id=format_id, fatal=False))              else:                  formats.append({                      'url': format_url, diff --git a/youtube_dl/extractor/ruutu.py b/youtube_dl/extractor/ruutu.py index e417bf661..41fddc375 100644 --- a/youtube_dl/extractor/ruutu.py +++ b/youtube_dl/extractor/ruutu.py @@ -63,15 +63,11 @@ class RuutuIE(InfoExtractor):                      processed_urls.append(video_url)                      ext = determine_ext(video_url)                      if ext == 'm3u8': -                        m3u8_formats = self._extract_m3u8_formats( -                            video_url, video_id, 'mp4', m3u8_id='hls', fatal=False) -                        if m3u8_formats: -                            formats.extend(m3u8_formats) +                        formats.extend(self._extract_m3u8_formats( +                            video_url, video_id, 'mp4', m3u8_id='hls', fatal=False))                      elif ext == 'f4m': -                        f4m_formats = self._extract_f4m_formats( -                            video_url, video_id, f4m_id='hds', fatal=False) -                        if f4m_formats: -                            formats.extend(f4m_formats) +                        formats.extend(self._extract_f4m_formats( +                            video_url, video_id, f4m_id='hds', fatal=False))                      else:                          proto = compat_urllib_parse_urlparse(video_url).scheme                          if not child.tag.startswith('HTTP') and proto != 'rtmp': diff --git a/youtube_dl/extractor/tele13.py b/youtube_dl/extractor/tele13.py index a363b4d40..fe11c20df 100644 --- a/youtube_dl/extractor/tele13.py +++ b/youtube_dl/extractor/tele13.py @@ -57,9 +57,7 @@ class Tele13IE(InfoExtractor):              if format_url and format_url not in urls:                  ext = determine_ext(format_url)                  if ext == 'm3u8': -                    m3u8_formats = self._extract_m3u8_formats(format_url, display_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -                    if m3u8_formats: -                        formats.extend(m3u8_formats) +                    formats.extend(self._extract_m3u8_formats(format_url, display_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))                  elif YoutubeIE.suitable(format_url):                      return self.url_result(format_url, 'Youtube')                  else: diff --git a/youtube_dl/extractor/toggle.py b/youtube_dl/extractor/toggle.py index a47239952..c54b876d3 100644 --- a/youtube_dl/extractor/toggle.py +++ b/youtube_dl/extractor/toggle.py @@ -132,13 +132,11 @@ class ToggleIE(InfoExtractor):              vid_format = vid_format.replace(' ', '')              # if geo-restricted, m3u8 is inaccessible, but mp4 is okay              if ext == 'm3u8': -                m3u8_formats = self._extract_m3u8_formats( +                formats.extend(self._extract_m3u8_formats(                      video_url, video_id, ext='mp4', m3u8_id=vid_format,                      note='Downloading %s m3u8 information' % vid_format,                      errnote='Failed to download %s m3u8 information' % vid_format, -                    fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                    fatal=False))              elif ext in ('mp4', 'wvm'):                  # wvm are drm-protected files                  formats.append({ diff --git a/youtube_dl/extractor/vgtv.py b/youtube_dl/extractor/vgtv.py index 129668a99..86ba70ed9 100644 --- a/youtube_dl/extractor/vgtv.py +++ b/youtube_dl/extractor/vgtv.py @@ -151,10 +151,8 @@ class VGTVIE(XstreamIE):          hls_url = streams.get('hls')          if hls_url: -            m3u8_formats = self._extract_m3u8_formats( -                hls_url, video_id, 'mp4', m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats( +                hls_url, video_id, 'mp4', m3u8_id='hls', fatal=False))          hds_url = streams.get('hds')          if hds_url: diff --git a/youtube_dl/extractor/viki.py b/youtube_dl/extractor/viki.py index 9a1c377a4..433fc9914 100644 --- a/youtube_dl/extractor/viki.py +++ b/youtube_dl/extractor/viki.py @@ -277,11 +277,9 @@ class VikiIE(VikiBaseIE):                  r'^(\d+)[pP]$', format_id, 'height', default=None))              for protocol, format_dict in stream_dict.items():                  if format_id == 'm3u8': -                    m3u8_formats = self._extract_m3u8_formats( +                    formats.extend(self._extract_m3u8_formats(                          format_dict['url'], video_id, 'mp4', 'm3u8_native', -                        m3u8_id='m3u8-%s' % protocol, fatal=False) -                    if m3u8_formats: -                        formats.extend(m3u8_formats) +                        m3u8_id='m3u8-%s' % protocol, fatal=False))                  else:                      formats.append({                          'url': format_dict['url'], diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index ce08e6955..7af699982 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -437,10 +437,8 @@ class VimeoIE(VimeoBaseInfoExtractor):              })          m3u8_url = config_files.get('hls', {}).get('url')          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats( -                m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats( +                m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))          # Bitrates are completely broken. Single m3u8 may contain entries in kbps and bps          # at the same time without actual units specified. This lead to wrong sorting.          self._sort_formats(formats, field_preference=('preference', 'height', 'width', 'fps', 'format_id')) diff --git a/youtube_dl/extractor/wdr.py b/youtube_dl/extractor/wdr.py index ef096cbd2..e8511398c 100644 --- a/youtube_dl/extractor/wdr.py +++ b/youtube_dl/extractor/wdr.py @@ -157,16 +157,12 @@ class WDRIE(InfoExtractor):          preference = qualities(['S', 'M', 'L', 'XL'])          if video_url.endswith('.f4m'): -            f4m_formats = self._extract_f4m_formats(video_url + '?hdcore=3.2.0&plugin=aasp-3.2.0.77.18', page_id, f4m_id='hds', fatal=False) -            if f4m_formats: -                formats.extend(f4m_formats) +            formats.extend(self._extract_f4m_formats(video_url + '?hdcore=3.2.0&plugin=aasp-3.2.0.77.18', page_id, f4m_id='hds', fatal=False))          elif video_url.endswith('.smil'): -            smil_formats = self._extract_smil_formats(video_url, page_id, False, { +            formats.extend(self._extract_smil_formats(video_url, page_id, False, {                  'hdcore': '3.3.0',                  'plugin': 'aasp-3.3.0.99.43', -            }) -            if smil_formats: -                formats.extend(smil_formats) +            }))          else:              formats.append({                  'url': video_url, @@ -177,9 +173,7 @@ class WDRIE(InfoExtractor):          m3u8_url = self._search_regex(r'rel="adaptiv"[^>]+href="([^"]+)"', webpage, 'm3u8 url', default=None)          if m3u8_url: -            m3u8_formats = self._extract_m3u8_formats(m3u8_url, page_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) -            if m3u8_formats: -                formats.extend(m3u8_formats) +            formats.extend(self._extract_m3u8_formats(m3u8_url, page_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))          direct_urls = re.findall(r'rel="web(S|M|L|XL)"[^>]+href="([^"]+)"', webpage)          if direct_urls: diff --git a/youtube_dl/extractor/zdf.py b/youtube_dl/extractor/zdf.py index 92c12bac6..2a1f2f6d1 100644 --- a/youtube_dl/extractor/zdf.py +++ b/youtube_dl/extractor/zdf.py @@ -125,20 +125,14 @@ class ZDFIE(InfoExtractor):              if ext == 'meta':                  continue              elif ext == 'smil': -                smil_formats = self._extract_smil_formats( -                    video_url, video_id, fatal=False) -                if smil_formats: -                    formats.extend(smil_formats) +                formats.extend(self._extract_smil_formats( +                    video_url, video_id, fatal=False))              elif ext == 'm3u8': -                m3u8_formats = self._extract_m3u8_formats( -                    video_url, video_id, 'mp4', m3u8_id='hls', fatal=False) -                if m3u8_formats: -                    formats.extend(m3u8_formats) +                formats.extend(self._extract_m3u8_formats( +                    video_url, video_id, 'mp4', m3u8_id='hls', fatal=False))              elif ext == 'f4m': -                f4m_formats = self._extract_f4m_formats( -                    video_url, video_id, f4m_id='hds', fatal=False) -                if f4m_formats: -                    formats.extend(f4m_formats) +                formats.extend(self._extract_f4m_formats( +                    video_url, video_id, f4m_id='hds', fatal=False))              else:                  proto = format_m.group('proto').lower() | 
