X-Git-Url: https://git.rapsys.eu/youtubedl/blobdiff_plain/63a6927374492ef47c8fd6de67d0760ace4dd0ed..f19349c26118065acbe21509383c63465df794fe:/youtube_dl/extractor/wimp.py diff --git a/youtube_dl/extractor/wimp.py b/youtube_dl/extractor/wimp.py index 82a626e..e4f50e6 100644 --- a/youtube_dl/extractor/wimp.py +++ b/youtube_dl/extractor/wimp.py @@ -1,32 +1,48 @@ -import re -import base64 +from __future__ import unicode_literals from .common import InfoExtractor +from .youtube import YoutubeIE class WimpIE(InfoExtractor): - _VALID_URL = r'(?:http://)?(?:www\.)?wimp\.com/([^/]+)/' - _TEST = { - u'url': u'http://www.wimp.com/deerfence/', - u'file': u'deerfence.flv', - u'md5': u'8b215e2e0168c6081a1cf84b2846a2b5', - u'info_dict': { - u"title": u"Watch Till End: Herd of deer jump over a fence.", - u"description": u"These deer look as fluid as running water when they jump over this fence as a herd. This video is one that needs to be watched until the very end for the true majesty to be witnessed, but once it comes, it's sure to take your breath away.", + _VALID_URL = r'http://(?:www\.)?wimp\.com/(?P[^/]+)/' + _TESTS = [{ + 'url': 'http://www.wimp.com/maruexhausted/', + 'md5': 'ee21217ffd66d058e8b16be340b74883', + 'info_dict': { + 'id': 'maruexhausted', + 'ext': 'mp4', + 'title': 'Maru is exhausted.', + 'description': 'md5:57e099e857c0a4ea312542b684a869b8', } - } + }, { + 'url': 'http://www.wimp.com/clowncar/', + 'md5': '4e2986c793694b55b37cf92521d12bb4', + 'info_dict': { + 'id': 'clowncar', + 'ext': 'mp4', + 'title': 'It\'s like a clown car.', + 'description': 'md5:0e56db1370a6e49c5c1d19124c0d2fb2', + }, + }] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group(1) + video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - googleString = self._search_regex("googleCode = '(.*?)'", webpage, 'file url') - googleString = base64.b64decode(googleString).decode('ascii') - final_url = self._search_regex('","(.*?)"', googleString, u'final video url') + video_url = self._search_regex( + [r"[\"']file[\"']\s*[:,]\s*[\"'](.+?)[\"']", r"videoId\s*:\s*[\"']([^\"']+)[\"']"], + webpage, 'video URL') + if YoutubeIE.suitable(video_url): + self.to_screen('Found YouTube video') + return { + '_type': 'url', + 'url': video_url, + 'ie_key': YoutubeIE.ie_key(), + } return { 'id': video_id, - 'url': final_url, + 'url': video_url, 'title': self._og_search_title(webpage), 'thumbnail': self._og_search_thumbnail(webpage), 'description': self._og_search_description(webpage),