diff options
| author | dst <dstftw@gmail.com> | 2013-12-25 16:04:08 +0700 | 
|---|---|---|
| committer | dst <dstftw@gmail.com> | 2013-12-25 16:07:34 +0700 | 
| commit | 1e923b0d2991c5d7425a38338e1487c7a431b9e1 (patch) | |
| tree | 3217fb10a4f97ff09aec46dcca9ea3b339c41763 | |
| parent | dabc127362ddfe88996e72b7e0d5cd2e4f239c98 (diff) | |
[macgamestore] Add extractor (#2043)
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/macgamestore.py | 40 | 
2 files changed, 41 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index a39a1e2f4..49eaab5c4 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -97,6 +97,7 @@ from .kickstarter import KickStarterIE  from .keek import KeekIE  from .liveleak import LiveLeakIE  from .livestream import LivestreamIE, LivestreamOriginalIE +from .macgamestore import MacGameStoreIE  from .mdr import MDRIE  from .metacafe import MetacafeIE  from .metacritic import MetacriticIE diff --git a/youtube_dl/extractor/macgamestore.py b/youtube_dl/extractor/macgamestore.py new file mode 100644 index 000000000..4541f6d66 --- /dev/null +++ b/youtube_dl/extractor/macgamestore.py @@ -0,0 +1,40 @@ +import re + +from .common import InfoExtractor +from ..utils import ExtractorError + + +class MacGameStoreIE(InfoExtractor): +    IE_NAME = u'macgamestore' +    IE_DESC = u'MacGameStore trailers' +    _VALID_URL = r'https?://www\.macgamestore\.com/mediaviewer\.php\?trailer=(?P<id>\d+)' + +    _TEST = { +        u'url': u'http://www.macgamestore.com/mediaviewer.php?trailer=2450', +        u'file': u'2450.m4v', +        u'md5': u'8649b8ea684b6666b4c5be736ecddc61', +        u'info_dict': { +            u'title': u'Crow', +        } +    } + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        video_id = mobj.group('id') +         +        webpage = self._download_webpage(url, video_id, u'Downloading trailer page') +         +        if re.search(r'>Missing Media<', webpage) is not None: +            raise ExtractorError(u'Trailer %s does not exist' % video_id, expected=True) +         +        mobj = re.search(r'<title>MacGameStore: (?P<title>.*?) Trailer</title>', webpage) +        video_title = mobj.group('title') +         +        mobj = re.search(r'(?s)<div\s+id="video-player".*?href="(?P<video>[^"]+)"\s*>', webpage) +        video_url = mobj.group('video') +         +        return { +            'id': video_id, +            'url': video_url, +            'title': video_title +        }
\ No newline at end of file | 
