Merge remote-tracking branch 'rzhxeo/crunchyroll'
[youtube-dl] / youtube_dl / extractor / wimp.py
index 9ff5112a6bf94a3feaba708f67638110c6e55a75..82a626e0eb866e4924f32f7809e33d59d9261168 100644 (file)
@@ -1,26 +1,33 @@
 import re
 import base64
+
 from .common import InfoExtractor
 
 
 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.",
+        }
+    }
 
     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('\<meta name\="description" content="(.+?)" \/\>',webpage, 'video title')
-        thumbnail_url = self._search_regex('\<meta property\=\"og\:image" content\=\"(.+?)\" />',webpage,'video thumbnail')
-        googleString = self._search_regex("googleCode = '(.*?)'", webpage,'file url')
-        googleString = base64.b64decode(googleString)
-        final_url = self._search_regex(b'","(.*?)"', googleString,'final video url')
-        ext = final_url.split('.')[-1]
-        return [{
-            'id':        video_id,
-            'url':       final_url,
-            'ext':       ext,
-            'title':     title,
-            'thumbnail': thumbnail_url,
-        }]
+        googleString = self._search_regex("googleCode = '(.*?)'", webpage, 'file url')
+        googleString = base64.b64decode(googleString).decode('ascii')
+        final_url = self._search_regex('","(.*?)"', googleString, u'final video url')
 
+        return {
+            'id': video_id,
+            'url': final_url,
+            'title': self._og_search_title(webpage),
+            'thumbnail': self._og_search_thumbnail(webpage),
+            'description': self._og_search_description(webpage),
+        }