diff options
| author | remitamine <remitamine@gmail.com> | 2016-03-15 22:57:59 +0100 | 
|---|---|---|
| committer | remitamine <remitamine@gmail.com> | 2016-03-15 23:10:31 +0100 | 
| commit | 2cab48704ced0d703f2b6de8575dc06e83207462 (patch) | |
| tree | 9923c6032673f8881de1a40855af3b2bf645ff40 | |
| parent | 64d4f31d78d9555d7f79b8bebeabb7535a842090 (diff) | |
[thestar] Add new extractor(closes #5955)
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/brightcove.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/thestar.py | 31 | 
3 files changed, 33 insertions, 1 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 179c11ffa..bf9fa17c9 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -737,6 +737,7 @@ from .theplatform import (      ThePlatformFeedIE,  )  from .thesixtyone import TheSixtyOneIE +from .thestar import TheStarIE  from .thisamericanlife import ThisAmericanLifeIE  from .thisav import ThisAVIE  from .tinypic import TinyPicIE diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index b182edb26..f56b642ab 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -157,7 +157,7 @@ class BrightcoveLegacyIE(InfoExtractor):          if playerKey is not None:              params['playerKey'] = playerKey          # The three fields hold the id of the video -        videoPlayer = find_param('@videoPlayer') or find_param('videoId') or find_param('videoID') +        videoPlayer = find_param('@videoPlayer') or find_param('videoId') or find_param('videoID') or find_param('@videoList')          if videoPlayer is not None:              params['@videoPlayer'] = videoPlayer          linkBase = find_param('linkBaseURL') diff --git a/youtube_dl/extractor/thestar.py b/youtube_dl/extractor/thestar.py new file mode 100644 index 000000000..b7e9af2af --- /dev/null +++ b/youtube_dl/extractor/thestar.py @@ -0,0 +1,31 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from .brightcove import BrightcoveLegacyIE +from ..compat import compat_parse_qs + + +class TheStarIE(InfoExtractor): +    _VALID_URL = r'https?://(?:www\.)?thestar\.com/(?:[^/]+/)*(?P<id>.+)\.html' +    _TEST = { +        'url': 'http://www.thestar.com/life/2016/02/01/mankind-why-this-woman-started-a-men-s-skincare-line.html', +        'md5': '2c62dd4db2027e35579fefb97a8b6554', +        'info_dict': { +            'id': '4732393888001', +            'ext': 'mp4', +            'title': 'Mankind: Why this woman started a men\'s skin care line', +            'description': 'Robert Cribb talks to Young Lee, the founder of Uncle Peter\'s MAN.', +            'uploader_id': '794267642001', +            'timestamp': 1454353482, +            'upload_date': '20160201', +        } +    } +    BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/794267642001/default_default/index.html?videoId=%s' + +    def _real_extract(self, url): +        display_id = self._match_id(url) +        webpage = self._download_webpage(url, display_id) +        brightcove_legacy_url = BrightcoveLegacyIE._extract_brightcove_url(webpage) +        brightcove_id = compat_parse_qs(brightcove_legacy_url)['@videoPlayer'][0] +        return self.url_result(self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, 'BrightcoveNew', brightcove_id)  | 
