diff options
Diffstat (limited to 'youtube_dl/extractor/mtv.py')
| -rw-r--r-- | youtube_dl/extractor/mtv.py | 19 | 
1 files changed, 16 insertions, 3 deletions
| diff --git a/youtube_dl/extractor/mtv.py b/youtube_dl/extractor/mtv.py index a597714e9..d887583e6 100644 --- a/youtube_dl/extractor/mtv.py +++ b/youtube_dl/extractor/mtv.py @@ -5,7 +5,6 @@ import re  from .common import InfoExtractor  from ..compat import (      compat_urllib_parse, -    compat_urllib_request,      compat_str,  )  from ..utils import ( @@ -13,6 +12,7 @@ from ..utils import (      find_xpath_attr,      fix_xml_ampersands,      HEADRequest, +    sanitized_Request,      unescapeHTML,      url_basename,      RegexNotFoundError, @@ -53,7 +53,7 @@ class MTVServicesInfoExtractor(InfoExtractor):      def _extract_mobile_video_formats(self, mtvn_id):          webpage_url = self._MOBILE_TEMPLATE % mtvn_id -        req = compat_urllib_request.Request(webpage_url) +        req = sanitized_Request(webpage_url)          # Otherwise we get a webpage that would execute some javascript          req.add_header('User-Agent', 'curl/7')          webpage = self._download_webpage(req, mtvn_id, @@ -200,7 +200,13 @@ class MTVServicesInfoExtractor(InfoExtractor):          if mgid is None or ':' not in mgid:              mgid = self._search_regex(                  [r'data-mgid="(.*?)"', r'swfobject.embedSWF\(".*?(mgid:.*?)"'], -                webpage, 'mgid') +                webpage, 'mgid', default=None) + +        if not mgid: +            sm4_embed = self._html_search_meta( +                'sm4:video:embed', webpage, 'sm4 embed', default='') +            mgid = self._search_regex( +                r'embed/(mgid:.+?)["\'&?/]', sm4_embed, 'mgid')          videos_info = self._get_videos_info(mgid)          return videos_info @@ -222,6 +228,13 @@ class MTVServicesEmbeddedIE(MTVServicesInfoExtractor):          },      } +    @staticmethod +    def _extract_url(webpage): +        mobj = re.search( +            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//media.mtvnservices.com/embed/.+?)\1', webpage) +        if mobj: +            return mobj.group('url') +      def _get_feed_url(self, uri):          video_id = self._id_from_uri(uri)          site_id = uri.replace(video_id, '') | 
