diff options
| -rw-r--r-- | youtube_dl/extractor/cbs.py | 22 | ||||
| -rw-r--r-- | youtube_dl/extractor/cbsnews.py | 13 | 
2 files changed, 14 insertions, 21 deletions
diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py index 0cf56b9c7..6e4079ca3 100644 --- a/youtube_dl/extractor/cbs.py +++ b/youtube_dl/extractor/cbs.py @@ -10,7 +10,18 @@ from ..utils import (  ) -class CBSIE(ThePlatformIE): +class CBSBaseIE(ThePlatformIE): +    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 [] + + +class CBSIE(CBSBaseIE):      _VALID_URL = r'https?://(?:www\.)?(?:cbs\.com/shows/[^/]+/(?:video|artist)|colbertlateshow\.com/(?:video|podcasts))/[^/]+/(?P<id>[^/]+)'      _TESTS = [{ @@ -52,15 +63,6 @@ class CBSIE(ThePlatformIE):      }]      TP_RELEASE_URL_TEMPLATE = 'http://link.theplatform.com/s/dJ5BDC/%s?manifest=m3u&mbr=true' -    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 [] -      def _real_extract(self, url):          display_id = self._match_id(url)          webpage = self._download_webpage(url, display_id) diff --git a/youtube_dl/extractor/cbsnews.py b/youtube_dl/extractor/cbsnews.py index e6b7f3584..b5e78a65d 100644 --- a/youtube_dl/extractor/cbsnews.py +++ b/youtube_dl/extractor/cbsnews.py @@ -2,14 +2,14 @@  from __future__ import unicode_literals  from .common import InfoExtractor -from .theplatform import ThePlatformIE +from .cbs import CBSBaseIE  from ..utils import (      parse_duration,      find_xpath_attr,  ) -class CBSNewsIE(ThePlatformIE): +class CBSNewsIE(CBSBaseIE):      IE_DESC = 'CBS News'      _VALID_URL = r'https?://(?:www\.)?cbsnews\.com/(?:news|videos)/(?P<id>[\da-z_-]+)' @@ -49,15 +49,6 @@ class CBSNewsIE(ThePlatformIE):          },      ] -    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 [] -      def _real_extract(self, url):          video_id = self._match_id(url)  | 
