Browse Source

[macgamestore] Add extractor (#2043)

master
dst 11 years ago
parent
commit
1e923b0d29
2 changed files with 41 additions and 0 deletions
  1. 1
      youtube_dl/extractor/__init__.py
  2. 40
      youtube_dl/extractor/macgamestore.py

1
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

40
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
}
Loading…
Cancel
Save