You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.5 KiB

  1. import re
  2. from .mtv import MTVIE, _media_xml_tag
  3. class GametrailersIE(MTVIE):
  4. """
  5. Gametrailers use the same videos system as MTVIE, it just changes the feed
  6. url, where the uri is and the method to get the thumbnails.
  7. """
  8. _VALID_URL = r'http://www.gametrailers.com/(?P<type>videos|reviews|full-episodes)/(?P<id>.*?)/(?P<title>.*)'
  9. _TEST = {
  10. u'url': u'http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer',
  11. u'file': u'70e9a5d7-cf25-4a10-9104-6f3e7342ae0d.mp4',
  12. u'md5': u'4c8e67681a0ea7ec241e8c09b3ea8cf7',
  13. u'info_dict': {
  14. u'title': u'E3 2013: Debut Trailer',
  15. u'description': u'Faith is back! Check out the World Premiere trailer for Mirror\'s Edge 2 straight from the EA Press Conference at E3 2013!',
  16. },
  17. }
  18. # Overwrite MTVIE properties we don't want
  19. _TESTS = []
  20. _FEED_URL = 'http://www.gametrailers.com/feeds/mrss'
  21. def _get_thumbnail_url(self, uri, itemdoc):
  22. search_path = '%s/%s' % (_media_xml_tag('group'), _media_xml_tag('thumbnail'))
  23. return itemdoc.find(search_path).attrib['url']
  24. def _real_extract(self, url):
  25. mobj = re.match(self._VALID_URL, url)
  26. video_id = mobj.group('id')
  27. webpage = self._download_webpage(url, video_id)
  28. mgid = self._search_regex([r'data-video="(?P<mgid>mgid:.*?)"',
  29. r'data-contentId=\'(?P<mgid>mgid:.*?)\''],
  30. webpage, u'mgid')
  31. return self._get_videos_info(mgid)