diff options
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/cnbc.py | 29 | ||||
| -rw-r--r-- | youtube_dl/extractor/theplatform.py | 8 | 
3 files changed, 34 insertions, 4 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 1e4b078a4..bd1f7d293 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -127,6 +127,7 @@ from .cloudy import CloudyIE  from .clubic import ClubicIE  from .clyp import ClypIE  from .cmt import CMTIE +from .cnbc import CNBCIE  from .cnet import CNETIE  from .cnn import (      CNNIE, diff --git a/youtube_dl/extractor/cnbc.py b/youtube_dl/extractor/cnbc.py new file mode 100644 index 000000000..593e459aa --- /dev/null +++ b/youtube_dl/extractor/cnbc.py @@ -0,0 +1,29 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import smuggle_url + + +class CNBCIE(InfoExtractor): +    _VALID_URL = r'https?://video\.cnbc\.com/gallery/\?video=(?P<id>[0-9]+)' +    _TEST = { +        'url': 'http://video.cnbc.com/gallery/?video=3000503714', +        'md5': '', +        'info_dict': { +            'id': '3000503714', +            'ext': 'mp4', +            'title': 'Video title goes here', +        } +    } + +    def _real_extract(self, url): +        video_id = self._match_id(url) +        return { +            '_type': 'url_transparent', +            'ie_key': 'ThePlatform', +            'url': smuggle_url( +                'http://link.theplatform.com/s/gZWlPC/media/guid/2408950221/%s?mbr=true&manifest=m3u' % video_id, +                {'force_smil_url': True}), +            'id': video_id, +        } diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py index 863914299..236c99972 100644 --- a/youtube_dl/extractor/theplatform.py +++ b/youtube_dl/extractor/theplatform.py @@ -82,7 +82,7 @@ class ThePlatformBaseIE(OnceIE):  class ThePlatformIE(ThePlatformBaseIE):      _VALID_URL = r'''(?x)          (?:https?://(?:link|player)\.theplatform\.com/[sp]/(?P<provider_id>[^/]+)/ -           (?:(?P<media>(?:(?:[^/]+/)+select/)?media/)|(?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/))? +           (?:(?:(?:[^/]+/)+select/)?(?P<media>media/(?:guid/\d+/)?)|(?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/))?           |theplatform:)(?P<id>[^/\?&]+)'''      _TESTS = [{ @@ -170,10 +170,10 @@ class ThePlatformIE(ThePlatformBaseIE):          if not provider_id:              provider_id = 'dJ5BDC' -        path = provider_id +        path = provider_id + '/'          if mobj.group('media'): -            path += '/media' -        path += '/' + video_id +            path += mobj.group('media') +        path += video_id          qs_dict = compat_parse_qs(compat_urllib_parse_urlparse(url).query)          if 'guid' in qs_dict:  | 
