X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=youtube_dl%2Fextractor%2Fmtv.py;h=8f956571d54dc4a42a4f3726642929e4b2497f13;hb=6d69d03bac08f8381031de721167103697bf3fed;hp=65c8c2d5267e7488f589252bc548504c806cb7f5;hpb=f7e025958a6b7315bd090e758037d6f19c82825e;p=youtube-dl diff --git a/youtube_dl/extractor/mtv.py b/youtube_dl/extractor/mtv.py index 65c8c2d52..8f956571d 100644 --- a/youtube_dl/extractor/mtv.py +++ b/youtube_dl/extractor/mtv.py @@ -7,6 +7,8 @@ from ..utils import ( ExtractorError, ) +def _media_xml_tag(tag): + return '{http://search.yahoo.com/mrss/}%s' % tag class MTVIE(InfoExtractor): _VALID_URL = r'^https?://(?:www\.)?mtv\.com/videos/.+?/(?P[0-9]+)/[^/]+$' @@ -47,7 +49,10 @@ class MTVIE(InfoExtractor): if not m: raise ExtractorError(u'Cannot transform RTMP url') base = 'http://mtvnmobile.vo.llnwd.net/kip0/_pxn=1+_pxI0=Ripod-h264+_pxL0=undefined+_pxM0=+_pxK=18639+_pxE=mp4/44620/mtvnorigin/' - return base + m.group('finalid') + return base + m.group('finalid') + + def _get_thumbnail_url(self, uri, itemdoc): + return 'http://mtv.mtvnimages.com/uri/' + uri def _extract_video_url(self, metadataXml): if '/error_country_block.swf' in metadataXml: @@ -71,8 +76,7 @@ class MTVIE(InfoExtractor): uri = itemdoc.find('guid').text video_id = self._id_from_uri(uri) self.report_extraction(video_id) - media_namespace = {'media': 'http://search.yahoo.com/mrss/'} - mediagen_url = itemdoc.find('media:group/media:content', media_namespace).attrib['url'] + mediagen_url = itemdoc.find('%s/%s' % (_media_xml_tag('group'), _media_xml_tag('content'))).attrib['url'] if 'acceptMethods' not in mediagen_url: mediagen_url += '&acceptMethods=fms' mediagen_page = self._download_webpage(mediagen_url, video_id, @@ -86,7 +90,7 @@ class MTVIE(InfoExtractor): description = None video_info.update({'title': itemdoc.find('title').text, 'id': video_id, - 'thumbnail': 'http://mtv.mtvnimages.com/uri/' + uri, + 'thumbnail': self._get_thumbnail_url(uri, itemdoc), 'description': description, }) return video_info