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.

37 lines
1.4 KiB

  1. import re
  2. from .mtv import MTVIE, _media_xml_tag
  3. class SouthParkStudiosIE(MTVIE):
  4. IE_NAME = u'southparkstudios.com'
  5. _VALID_URL = r'(https?://)?(www\.)?(?P<url>southparkstudios\.com/(clips|full-episodes)/(?P<id>.+?)(\?|#|$))'
  6. _FEED_URL = 'http://www.southparkstudios.com/feeds/video-player/mrss'
  7. # Overwrite MTVIE properties we don't want
  8. _TESTS = [{
  9. u'url': u'http://www.southparkstudios.com/clips/104437/bat-daded#tab=featured',
  10. u'file': u'a7bff6c2-ed00-11e0-aca6-0026b9414f30.mp4',
  11. u'info_dict': {
  12. u'title': u'Bat Daded',
  13. u'description': u'Randy disqualifies South Park by getting into a fight with Bat Dad.',
  14. },
  15. }]
  16. def _get_thumbnail_url(self, uri, itemdoc):
  17. search_path = '%s/%s' % (_media_xml_tag('group'), _media_xml_tag('thumbnail'))
  18. thumb_node = itemdoc.find(search_path)
  19. if thumb_node is None:
  20. return None
  21. else:
  22. return thumb_node.attrib['url']
  23. def _real_extract(self, url):
  24. mobj = re.match(self._VALID_URL, url)
  25. url = u'http://www.' + mobj.group(u'url')
  26. video_id = mobj.group('id')
  27. webpage = self._download_webpage(url, video_id)
  28. mgid = self._search_regex(r'swfobject.embedSWF\(".*?(mgid:.*?)"',
  29. webpage, u'mgid')
  30. return self._get_videos_info(mgid)