diff options
Diffstat (limited to 'youtube_dl/extractor/cbs.py')
| -rw-r--r-- | youtube_dl/extractor/cbs.py | 18 | 
1 files changed, 11 insertions, 7 deletions
| diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py index 1799d63ea..376db7263 100644 --- a/youtube_dl/extractor/cbs.py +++ b/youtube_dl/extractor/cbs.py @@ -13,13 +13,17 @@ from ..utils import (  class CBSBaseIE(ThePlatformFeedIE):      def _parse_smil_subtitles(self, smil, namespace=None, subtitles_lang='en'): -        closed_caption_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', 'ClosedCaptionURL') -        return { -            'en': [{ -                'ext': 'ttml', -                'url': closed_caption_e.attrib['value'], -            }] -        } if closed_caption_e is not None and closed_caption_e.attrib.get('value') else [] +        subtitles = {} +        for k, ext in [('sMPTE-TTCCURL', 'tt'), ('ClosedCaptionURL', 'ttml'), ('webVTTCaptionURL', 'vtt')]: +            cc_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', k) +            if cc_e is not None: +                cc_url = cc_e.get('value') +                if cc_url: +                    subtitles.setdefault(subtitles_lang, []).append({ +                        'ext': ext, +                        'url': cc_url, +                    }) +        return subtitles  class CBSIE(CBSBaseIE): | 
