[vlive] Add info about www. to m. redirects for mobile
[youtube-dl] / youtube_dl / extractor / vlive.py
index b3bbd80fb482a21e61519ee9700bcd2b097b246a..a456f8217f0b72257a2a5be0d52603170e1329a3 100644 (file)
@@ -16,6 +16,7 @@ from ..compat import compat_urllib_parse
 
 class VLiveIE(InfoExtractor):
     IE_NAME = 'vlive'
+    # www.vlive.tv/video/ links redirect to m.vlive.tv/video/ for mobile devices
     _VALID_URL = r'https?://(?:(www|m)\.)?vlive\.tv/video/(?P<id>[0-9]+)'
     _TEST = {
         'url': 'http://m.vlive.tv/video/1326',
@@ -25,7 +26,6 @@ class VLiveIE(InfoExtractor):
             'ext': 'mp4',
             'title': '[V] Girl\'s Day\'s Broadcast',
             'creator': 'Girl\'s Day',
-            'upload_date': '20150817',
         },
     }
     _SECRET = 'rFkwZet6pqk1vQt6SxxUkAHX7YL3lmqzUMrU4IDusTo4jEBdtOhNfT4BYYAdArwH'
@@ -40,26 +40,19 @@ class VLiveIE(InfoExtractor):
         title = self._og_search_title(webpage)
         thumbnail = self._og_search_thumbnail(webpage)
         creator = self._html_search_regex(
-            r'<span class="name">([^<>]+)</span>', webpage, 'creator')
-        upload_date = self._html_search_regex(
-            r'<span class="time">(\d{4}\.\d{2}\.\d{2})</span>', webpage,
-            'upload date', default=None, fatal=False)
-        if upload_date:
-            upload_date = upload_date.replace('.', '')
-
+            r'<span[^>]+class="name">([^<>]+)</span>', webpage, 'creator')
+        
         url = 'http://global.apis.naver.com/globalV/globalV/vod/%s/playinfo?' % video_id
-        msgpad = {'msgpad': '%.0f' % (time() * 1000)}
-        md = {
-            'md': b64encode(
-                hmac.new(self._SECRET.encode('ascii'),
-                         (url[:255] + msgpad['msgpad']).encode('ascii'), sha1).digest())
-        }
-        url += '&' + compat_urllib_parse.urlencode(msgpad) + '&' + compat_urllib_parse.urlencode(md)
-
+        msgpad = '%.0f' % (time() * 1000)
+        md = b64encode(
+            hmac.new(self._SECRET.encode('ascii'),
+                     (url[:255] + msgpad).encode('ascii'), sha1).digest()
+        )
+        url += '&' + compat_urllib_parse.urlencode({'msgpad': msgpad, 'md': md})
         playinfo = self._download_json(url, video_id, 'Downloading video json')
 
         if playinfo.get('message', '') != 'success':
-            raise ExtractorError(playinfo['message'])
+            raise ExtractorError(playinfo.get('message', 'JSON request unsuccessful'))
 
         if not playinfo.get('result'):
             raise ExtractorError('No videos found.')
@@ -89,6 +82,5 @@ class VLiveIE(InfoExtractor):
             'creator': creator,
             'thumbnail': thumbnail,
             'formats': formats,
-            'upload_date': upload_date,
             'subtitles': subtitles,
         }