Merge branch 'master' into rtmpdump
[youtube-dl] / youtube_dl / extractor / vine.py
index b44b1cb024f607e78ba1b977be42220ea7090e81..651ba317dcd8fffefb2ac938c9f09d5de8356865 100644 (file)
@@ -5,6 +5,15 @@ from .common import InfoExtractor
 
 class VineIE(InfoExtractor):
     _VALID_URL = r'(?:https?://)?(?:www\.)?vine\.co/v/(?P<id>\w+)'
+    _TEST = {
+        u'url': u'https://vine.co/v/b9KOOWX7HUx',
+        u'file': u'b9KOOWX7HUx.mp4',
+        u'md5': u'2f36fed6235b16da96ce9b4dc890940d',
+        u'info_dict': {
+            u"uploader": u"Jack Dorsey", 
+            u"title": u"Chicken."
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
@@ -18,20 +27,14 @@ class VineIE(InfoExtractor):
         video_url = self._html_search_regex(r'<meta property="twitter:player:stream" content="(.+?)"',
             webpage, u'video URL')
 
-        video_title = self._html_search_regex(r'<meta property="og:title" content="(.+?)"',
-            webpage, u'title')
-
-        thumbnail = self._html_search_regex(r'<meta property="og:image" content="(.+?)(\?.*?)?"',
-            webpage, u'thumbnail', fatal=False)
-
-        uploader = self._html_search_regex(r'<div class="user">.*?<h2>(.+?)</h2>',
+        uploader = self._html_search_regex(r'<p class="username">(.*?)</p>',
             webpage, u'uploader', fatal=False, flags=re.DOTALL)
 
         return [{
             'id':        video_id,
             'url':       video_url,
             'ext':       'mp4',
-            'title':     video_title,
-            'thumbnail': thumbnail,
+            'title':     self._og_search_title(webpage),
+            'thumbnail': self._og_search_thumbnail(webpage),
             'uploader':  uploader,
         }]