Prechádzať zdrojové kódy

[bambuser] Capture and output error message (#5478)

Sergey M․ 10 rokov pred
rodič
commit
ae8953409e
1 zmenil súbory, kde vykonal 17 pridanie a 12 odobranie
  1. 17 12
      youtube_dl/extractor/bambuser.py

+ 17 - 12
youtube_dl/extractor/bambuser.py

@@ -1,13 +1,11 @@
 from __future__ import unicode_literals
 from __future__ import unicode_literals
 
 
 import re
 import re
-import json
 import itertools
 import itertools
 
 
 from .common import InfoExtractor
 from .common import InfoExtractor
-from ..compat import (
-    compat_urllib_request,
-)
+from ..compat import compat_urllib_request
+from ..utils import ExtractorError
 
 
 
 
 class BambuserIE(InfoExtractor):
 class BambuserIE(InfoExtractor):
@@ -39,17 +37,24 @@ class BambuserIE(InfoExtractor):
 
 
         info = self._download_json(
         info = self._download_json(
             'http://player-c.api.bambuser.com/getVideo.json?api_key=%s&vid=%s'
             'http://player-c.api.bambuser.com/getVideo.json?api_key=%s&vid=%s'
-            % (self._API_KEY, video_id), video_id)['result']
+            % (self._API_KEY, video_id), video_id)
+
+        error = info.get('error')
+        if error:
+            raise ExtractorError(
+                '%s returned error: %s' % (self.IE_NAME, error), expected=True)
+
+        result = info['result']
 
 
         return {
         return {
             'id': video_id,
             'id': video_id,
-            'title': info['title'],
-            'url': info['url'],
-            'thumbnail': info.get('preview'),
-            'duration': int(info['length']),
-            'view_count': int(info['views_total']),
-            'uploader': info['username'],
-            'uploader_id': info['owner']['uid'],
+            'title': result['title'],
+            'url': result['url'],
+            'thumbnail': result.get('preview'),
+            'duration': int(result['length']),
+            'view_count': int(result['views_total']),
+            'uploader': result['username'],
+            'uploader_id': result['owner']['uid'],
         }
         }