Add an extractor for spike.com (#2072)
[youtube-dl] / youtube_dl / extractor / mtv.py
index 485c1fd7d02dd6920de2fae7d8dbca4d76bdf475..517115501774145efda8c58cf278a7e335f9223d 100644 (file)
@@ -7,6 +7,8 @@ from ..utils import (
     compat_urllib_parse,
     ExtractorError,
     fix_xml_ampersands,
+    url_basename,
+    RegexNotFoundError,
 )
 
 def _media_xml_tag(tag):
@@ -89,6 +91,17 @@ class MTVServicesInfoExtractor(InfoExtractor):
             'Downloading info', transform_source=fix_xml_ampersands)
         return [self._get_video_info(item) for item in idoc.findall('.//item')]
 
+    def _real_extract(self, url):
+        title = url_basename(url)
+        webpage = self._download_webpage(url, title)
+        try:
+            # the url is in the format http://media.mtvnservices.com/fb/{mgid}.swf
+            fb_url = self._og_search_video_url(webpage)
+            mgid = url_basename(fb_url).rpartition('.')[0]
+        except RegexNotFoundError:
+            mgid = self._search_regex(r'data-mgid="(.*?)"', webpage, u'mgid')
+        return self._get_videos_info(mgid)
+
 
 class MTVIE(MTVServicesInfoExtractor):
     _VALID_URL = r'''(?x)^https?://