[youtube] Remove info el for get_video_info request
[youtube-dl] / youtube_dl / extractor / wimp.py
index 3635691e7a15cbed6957cc7757138f3179c318f3..ea234e3c5088f7c7c99e049ab95f1e69542dd38f 100644 (file)
@@ -1,34 +1,54 @@
-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'https?://(?:www\.)?wimp\.com/(?P<id>[^/]+)'
+    _TESTS = [{
+        'url': 'http://www.wimp.com/maru-is-exhausted/',
+        'md5': 'ee21217ffd66d058e8b16be340b74883',
+        'info_dict': {
+            'id': 'maru-is-exhausted',
+            'ext': 'mp4',
+            'title': 'Maru is exhausted.',
+            'description': 'md5:57e099e857c0a4ea312542b684a869b8',
         }
-    }
+    }, {
+        'url': 'http://www.wimp.com/clowncar/',
+        'md5': '5c31ad862a90dc5b1f023956faec13fe',
+        'info_dict': {
+            'id': 'cG4CEr2aiSg',
+            'ext': 'webm',
+            'title': 'Basset hound clown car...incredible!',
+            'description': '5 of my Bassets crawled in this dog loo! www.bellinghambassets.com\n\nFor licensing/usage please contact: licensing(at)jukinmediadotcom',
+            'upload_date': '20140303',
+            'uploader': 'Gretchen Hoey',
+            'uploader_id': 'gretchenandjeff1',
+        },
+        'add_ie': ['Youtube'],
+    }]
 
     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)
-        title = self._html_search_meta('description', webpage, u'video title')
-        googleString = self._search_regex("googleCode = '(.*?)'", webpage, 'file url')
-        googleString = base64.b64decode(googleString).decode('ascii')
-        final_url = self._search_regex('","(.*?)"', googleString,'final video url')
 
-        return {
+        youtube_id = self._search_regex(
+            (r"videoId\s*:\s*[\"']([0-9A-Za-z_-]{11})[\"']",
+             r'data-id=["\']([0-9A-Za-z_-]{11})'),
+            webpage, 'video URL', default=None)
+        if youtube_id:
+            return self.url_result(youtube_id, YoutubeIE.ie_key())
+
+        info_dict = self._extract_jwplayer_data(
+            webpage, video_id, require_title=False)
+
+        info_dict.update({
             'id': video_id,
-            'url': final_url,
             'title': self._og_search_title(webpage),
-            'thumbnail': self._og_search_thumbnail(webpage),
             'description': self._og_search_description(webpage),
-        }
+        })
+
+        return info_dict