diff options
| author | remitamine <remitamine@gmail.com> | 2016-05-23 09:30:26 +0100 | 
|---|---|---|
| committer | remitamine <remitamine@gmail.com> | 2016-05-23 09:31:37 +0100 | 
| commit | 42a7439717610530b0f7c630ef0eecf1b0638475 (patch) | |
| tree | 7fe3aebc825fb8f69d987eca7a649ef393e44dc0 /youtube_dl/extractor/cbs.py | |
| parent | b1e9ebd08087c7e591b55451551d51120b7eec9d (diff) | |
[cbs] allow to pass content id to the extractor(closes #9589)
Diffstat (limited to 'youtube_dl/extractor/cbs.py')
| -rw-r--r-- | youtube_dl/extractor/cbs.py | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py index 051d783a2..ac2c7dced 100644 --- a/youtube_dl/extractor/cbs.py +++ b/youtube_dl/extractor/cbs.py @@ -1,5 +1,7 @@  from __future__ import unicode_literals +import re +  from .theplatform import ThePlatformIE  from ..utils import (      xpath_text, @@ -21,7 +23,7 @@ class CBSBaseIE(ThePlatformIE):  class CBSIE(CBSBaseIE): -    _VALID_URL = r'https?://(?:www\.)?(?:cbs\.com/shows/[^/]+/(?:video|artist)|colbertlateshow\.com/(?:video|podcasts))/[^/]+/(?P<id>[^/]+)' +    _VALID_URL = r'(?:cbs:(?P<content_id>\w+)|https?://(?:www\.)?(?:cbs\.com/shows/[^/]+/(?:video|artist)|colbertlateshow\.com/(?:video|podcasts))/[^/]+/(?P<display_id>[^/]+))'      _TESTS = [{          'url': 'http://www.cbs.com/shows/garth-brooks/video/_u7W953k6la293J7EPTd9oHkSPs6Xn6_/connect-chat-feat-garth-brooks/', @@ -66,11 +68,12 @@ class CBSIE(CBSBaseIE):      TP_RELEASE_URL_TEMPLATE = 'http://link.theplatform.com/s/dJ5BDC/%s?mbr=true'      def _real_extract(self, url): -        display_id = self._match_id(url) -        webpage = self._download_webpage(url, display_id) -        content_id = self._search_regex( -            [r"video\.settings\.content_id\s*=\s*'([^']+)';", r"cbsplayer\.contentId\s*=\s*'([^']+)';"], -            webpage, 'content id') +        content_id, display_id = re.match(self._VALID_URL, url).groups() +        if not content_id: +            webpage = self._download_webpage(url, display_id) +            content_id = self._search_regex( +                [r"video\.settings\.content_id\s*=\s*'([^']+)';", r"cbsplayer\.contentId\s*=\s*'([^']+)';"], +                webpage, 'content id')          items_data = self._download_xml(              'http://can.cbs.com/thunder/player/videoPlayerService.php',              content_id, query={'partner': 'cbs', 'contentId': content_id}) | 
