|
@@ -93,7 +93,9 @@ class MTVServicesInfoExtractor(InfoExtractor):
|
|
|
|
|
|
|
|
|
class MTVIE(MTVServicesInfoExtractor):
|
|
|
- _VALID_URL = r'^https?://(?:www\.)?mtv\.com/videos/.+?/(?P<videoid>[0-9]+)/[^/]+$'
|
|
|
+ _VALID_URL = r'''(?x)^https?://
|
|
|
+ (?:(?:www\.)?mtv\.com/videos/.+?/(?P<videoid>[0-9]+)/[^/]+$|
|
|
|
+ m\.mtv\.com/videos/video\.rbml\?.*?id=(?P<mgid>[^&]+))'''
|
|
|
|
|
|
_FEED_URL = 'http://www.mtv.com/player/embed/AS3/rss/'
|
|
|
|
|
@@ -127,16 +129,17 @@ class MTVIE(MTVServicesInfoExtractor):
|
|
|
def _real_extract(self, url):
|
|
|
mobj = re.match(self._VALID_URL, url)
|
|
|
video_id = mobj.group('videoid')
|
|
|
-
|
|
|
- webpage = self._download_webpage(url, video_id)
|
|
|
-
|
|
|
- # Some videos come from Vevo.com
|
|
|
- m_vevo = re.search(r'isVevoVideo = true;.*?vevoVideoId = "(.*?)";',
|
|
|
- webpage, re.DOTALL)
|
|
|
- if m_vevo:
|
|
|
- vevo_id = m_vevo.group(1);
|
|
|
- self.to_screen(u'Vevo video detected: %s' % vevo_id)
|
|
|
- return self.url_result('vevo:%s' % vevo_id, ie='Vevo')
|
|
|
-
|
|
|
- uri = self._html_search_regex(r'/uri/(.*?)\?', webpage, u'uri')
|
|
|
+ uri = mobj.group('mgid')
|
|
|
+ if uri is None:
|
|
|
+ webpage = self._download_webpage(url, video_id)
|
|
|
+
|
|
|
+ # Some videos come from Vevo.com
|
|
|
+ m_vevo = re.search(r'isVevoVideo = true;.*?vevoVideoId = "(.*?)";',
|
|
|
+ webpage, re.DOTALL)
|
|
|
+ if m_vevo:
|
|
|
+ vevo_id = m_vevo.group(1);
|
|
|
+ self.to_screen(u'Vevo video detected: %s' % vevo_id)
|
|
|
+ return self.url_result('vevo:%s' % vevo_id, ie='Vevo')
|
|
|
+
|
|
|
+ uri = self._html_search_regex(r'/uri/(.*?)\?', webpage, u'uri')
|
|
|
return self._get_videos_info(uri)
|