diff options
| author | Sergey M․ <dstftw@gmail.com> | 2018-03-20 00:27:39 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2018-03-20 00:27:39 +0700 | 
| commit | 21dedcb5804b070bea143e4670df3b6f2951a078 (patch) | |
| tree | c03ed0128aafe09b3a11f3c3c48bf4f56e7ca95f /youtube_dl/extractor/cbs.py | |
| parent | 6780154e6bcdabdb35a24d2b1c5049c94fbe27a1 (diff) | |
[cbs] Skip unavailable assets (closes #13490, closes #13506, closes #15776)
Diffstat (limited to 'youtube_dl/extractor/cbs.py')
| -rw-r--r-- | youtube_dl/extractor/cbs.py | 14 | 
1 files changed, 11 insertions, 3 deletions
diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py index 1268e38ef..f425562ab 100644 --- a/youtube_dl/extractor/cbs.py +++ b/youtube_dl/extractor/cbs.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals  from .theplatform import ThePlatformFeedIE  from ..utils import ( +    ExtractorError,      int_or_none,      find_xpath_attr,      xpath_element, @@ -61,6 +62,7 @@ class CBSIE(CBSBaseIE):          asset_types = []          subtitles = {}          formats = [] +        last_e = None          for item in items_data.findall('.//item'):              asset_type = xpath_text(item, 'assetType')              if not asset_type or asset_type in asset_types: @@ -74,11 +76,17 @@ class CBSIE(CBSBaseIE):                  query['formats'] = 'MPEG4,M3U'              elif asset_type in ('RTMP', 'WIFI', '3G'):                  query['formats'] = 'MPEG4,FLV' -            tp_formats, tp_subtitles = self._extract_theplatform_smil( -                update_url_query(tp_release_url, query), content_id, -                'Downloading %s SMIL data' % asset_type) +            try: +                tp_formats, tp_subtitles = self._extract_theplatform_smil( +                    update_url_query(tp_release_url, query), content_id, +                    'Downloading %s SMIL data' % asset_type) +            except ExtractorError as e: +                last_e = e +                continue              formats.extend(tp_formats)              subtitles = self._merge_subtitles(subtitles, tp_subtitles) +        if last_e and not formats: +            raise last_e          self._sort_formats(formats)          info = self._extract_theplatform_metadata(tp_path, content_id)  | 
