diff --git a/test/tests.json b/test/tests.json index aa540792ee..ebc7a123c1 100644 --- a/test/tests.json +++ b/test/tests.json @@ -705,5 +705,14 @@ "title": "Attorney General Eric Holder on Voting Rights Act Decision" }, "skip": "Requires rtmpdump" + }, + { + "name": "Wimp", + "url": "http://www.wimp.com/deerfence/", + "file": "deerfence.flv", + "md5": "8b215e2e0168c6081a1cf84b2846a2b5", + "info_dict": { + "title": "Watch Till End: Herd of deer jump over a fence." + } } ] diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index eaa213609f..2750fc8f90 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -50,6 +50,7 @@ from .vevo import VevoIE from .vimeo import VimeoIE from .vine import VineIE +from .wimp import WimpIE from .worldstarhiphop import WorldStarHipHopIE from .xhamster import XHamsterIE from .xnxx import XNXXIE @@ -134,6 +135,7 @@ def gen_extractors(): JukeboxIE(), TudouIE(), CSpanIE(), + WimpIE(), GenericIE() ] diff --git a/youtube_dl/extractor/wimp.py b/youtube_dl/extractor/wimp.py new file mode 100644 index 0000000000..84f065a3df --- /dev/null +++ b/youtube_dl/extractor/wimp.py @@ -0,0 +1,28 @@ +import re +import base64 + +from .common import InfoExtractor + + +class WimpIE(InfoExtractor): + _VALID_URL = r'(?:http://)?(?:www\.)?wimp\.com/([^/]+)/' + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group(1) + webpage = self._download_webpage(url, video_id) + title = self._search_regex(r'',webpage, 'video title') + thumbnail_url = self._search_regex(r'', webpage,'video thumbnail') + googleString = self._search_regex("googleCode = '(.*?)'", webpage, 'file url') + googleString = base64.b64decode(googleString).decode('ascii') + final_url = self._search_regex('","(.*?)"', googleString,'final video url') + ext = final_url.rpartition(u'.')[2] + + return [{ + 'id': video_id, + 'url': final_url, + 'ext': ext, + 'title': title, + 'thumbnail': thumbnail_url, + }] +