aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl')
-rw-r--r--youtube_dl/extractor/southparkstudios.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/youtube_dl/extractor/southparkstudios.py b/youtube_dl/extractor/southparkstudios.py
index a5dc754dd..1a611d3bb 100644
--- a/youtube_dl/extractor/southparkstudios.py
+++ b/youtube_dl/extractor/southparkstudios.py
@@ -5,7 +5,7 @@ from .mtv import MTVIE, _media_xml_tag
class SouthParkStudiosIE(MTVIE):
IE_NAME = u'southparkstudios.com'
- _VALID_URL = r'https?://www\.southparkstudios\.com/clips/(?P<id>\d+)'
+ _VALID_URL = r'https?://www\.southparkstudios\.com/(clips|full-episodes)/(?P<id>.+?)(\?|#|$)'
_FEED_URL = 'http://www.southparkstudios.com/feeds/video-player/mrss'
@@ -14,7 +14,7 @@ class SouthParkStudiosIE(MTVIE):
u'file': u'a7bff6c2-ed00-11e0-aca6-0026b9414f30.mp4',
u'info_dict': {
u'title': u'Bat Daded',
- u'description': u'Randy disqualifies South Park by getting into a fight with Bat Dad.',
+ u'description': u'Randy finally gets the chance to fight Bat Dad and gets the boys disqualified from the season championships.',
},
}
@@ -23,12 +23,16 @@ class SouthParkStudiosIE(MTVIE):
def _get_thumbnail_url(self, uri, itemdoc):
search_path = '%s/%s' % (_media_xml_tag('group'), _media_xml_tag('thumbnail'))
- return itemdoc.find(search_path).attrib['url']
+ thumb_node = itemdoc.find(search_path)
+ if thumb_node is None:
+ return None
+ else:
+ return thumb_node.attrib['url']
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
video_id = mobj.group('id')
webpage = self._download_webpage(url, video_id)
- mgid = self._search_regex(r'swfobject.embedSWF\(".*?(mgid:.*?)"',
+ mgid = self._search_regex(r'data-mgid="(mgid:.*?)"',
webpage, u'mgid')
return self._get_videos_info(mgid)