X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fvideomega.py;h=27303031620a8c126797bcdd6207d2f2355c74be;hb=e1554a407d8953d0ec4fabec7f5a3b3906d1029b;hp=7a78f0d264a47fc85c53cd815242e629ee38ed30;hpb=1cc79574fc5df21bf35dccf61eac0e9e75ed8d20;p=youtube-dl diff --git a/youtube_dl/extractor/videomega.py b/youtube_dl/extractor/videomega.py index 7a78f0d26..273030316 100644 --- a/youtube_dl/extractor/videomega.py +++ b/youtube_dl/extractor/videomega.py @@ -1,11 +1,15 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .common import InfoExtractor from ..compat import ( compat_urllib_parse, + compat_urllib_request, ) from ..utils import ( + ExtractorError, remove_start, ) @@ -16,34 +20,40 @@ class VideoMegaIE(InfoExtractor): (?:iframe\.php)?\?ref=(?P[A-Za-z0-9]+) ''' _TEST = { - 'url': 'http://videomega.tv/?ref=GKeGPVedBe', - 'md5': '240fb5bcf9199961f48eb17839b084d6', + 'url': 'http://videomega.tv/?ref=QR0HCUHI1661IHUCH0RQ', + 'md5': 'bf5c2f95c4c917536e80936af7bc51e1', 'info_dict': { - 'id': 'GKeGPVedBe', + 'id': 'QR0HCUHI1661IHUCH0RQ', 'ext': 'mp4', - 'title': 'XXL - All Sports United', + 'title': 'Big Buck Bunny', 'thumbnail': 're:^https?://.*\.jpg$', } } def _real_extract(self, url): video_id = self._match_id(url) - url = 'http://videomega.tv/iframe.php?ref={0:}'.format(video_id) - webpage = self._download_webpage(url, video_id) - escaped_data = self._search_regex( - r'unescape\("([^"]+)"\)', webpage, 'escaped data') + iframe_url = 'http://videomega.tv/iframe.php?ref={0:}'.format(video_id) + req = compat_urllib_request.Request(iframe_url) + req.add_header('Referer', url) + webpage = self._download_webpage(req, video_id) + + try: + escaped_data = re.findall(r'unescape\("([^"]+)"\)', webpage)[-1] + except IndexError: + raise ExtractorError('Unable to extract escaped data') + playlist = compat_urllib_parse.unquote(escaped_data) thumbnail = self._search_regex( r'image:\s*"([^"]+)"', playlist, 'thumbnail', fatal=False) - url = self._search_regex(r'file:\s*"([^"]+)"', playlist, 'URL') + video_url = self._search_regex(r'file:\s*"([^"]+)"', playlist, 'URL') title = remove_start(self._html_search_regex( r'(.*?)', webpage, 'title'), 'VideoMega.tv - ') formats = [{ 'format_id': 'sd', - 'url': url, + 'url': video_url, }] self._sort_formats(formats) @@ -52,4 +62,7 @@ class VideoMegaIE(InfoExtractor): 'title': title, 'formats': formats, 'thumbnail': thumbnail, + 'http_headers': { + 'Referer': iframe_url, + }, }