[vube] Fix comment count
authorPhilipp Hagemeister <phihag@phihag.de>
Tue, 22 Jul 2014 23:27:25 +0000 (01:27 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Tue, 22 Jul 2014 23:27:25 +0000 (01:27 +0200)
youtube_dl/extractor/common.py
youtube_dl/extractor/vube.py

index 9b36e07891524c627be2b20a1adbd5269d57930a..88f12797c6c351ab8eae943d183c81bc90028e8e 100644 (file)
@@ -301,8 +301,12 @@ class InfoExtractor(object):
     def _download_json(self, url_or_request, video_id,
                        note=u'Downloading JSON metadata',
                        errnote=u'Unable to download JSON metadata',
-                       transform_source=None):
-        json_string = self._download_webpage(url_or_request, video_id, note, errnote)
+                       transform_source=None,
+                       fatal=True):
+        json_string = self._download_webpage(
+            url_or_request, video_id, note, errnote, fatal=fatal)
+        if (not fatal) and json_string is False:
+            return None
         if transform_source:
             json_string = transform_source(json_string)
         try:
index c1ab76465135af3e19f1892778c3a0c4a49aaafc..f1b9e9a19d05d9026feb24b6f22d395cd3990e5f 100644 (file)
@@ -25,7 +25,10 @@ class VubeIE(InfoExtractor):
                 'uploader': 'Chiara.Grispo',
                 'timestamp': 1388743358,
                 'upload_date': '20140103',
-                'duration': 170.56
+                'duration': 170.56,
+                'like_count': int,
+                'dislike_count': int,
+                'comment_count': int,
             }
         },
         {
@@ -40,7 +43,10 @@ class VubeIE(InfoExtractor):
                 'uploader': 'Seraina',
                 'timestamp': 1396492438,
                 'upload_date': '20140403',
-                'duration': 240.107
+                'duration': 240.107,
+                'like_count': int,
+                'dislike_count': int,
+                'comment_count': int,
             }
         }, {
             'url': 'http://vube.com/vote/Siren+Gene/0nmsMY5vEq?n=2&t=s',
@@ -56,6 +62,7 @@ class VubeIE(InfoExtractor):
                 'duration': 221.788,
                 'like_count': int,
                 'dislike_count': int,
+                'comment_count': int,
             }
         }
     ]
@@ -70,7 +77,6 @@ class VubeIE(InfoExtractor):
             webpage, 'video data'
         )
         data = json.loads(data_json)
-        open('/dev/shm/f', 'w').write(json.dumps(data, indent=2))
         video = (
             data.get('video') or
             data)
@@ -101,12 +107,22 @@ class VubeIE(InfoExtractor):
         duration = video['duration']
         view_count = video.get('raw_view_count')
         like_count = video.get('rlikes')
+        if like_count is None:
+            like_count = video.get('total_likes')
         dislike_count = video.get('rhates')
+        if dislike_count is None:
+            dislike_count = video.get('total_hates')
 
-        comment = self._download_json(
-            'http://vube.com/api/video/%s/comment' % video_id, video_id, 'Downloading video comment JSON')
-
-        comment_count = int_or_none(comment.get('total'))
+        comments = video.get('comments')
+        comment_count = None
+        if comments is None:
+            comment_data = self._download_json(
+                'http://vube.com/api/video/%s/comment' % video_id,
+                video_id, 'Downloading video comment JSON', fatal=False)
+            if comment_data is not None:
+                comment_count = int_or_none(comment_data.get('total'))
+        else:
+            comment_count = len(comments)
 
         return {
             'id': video_id,