浏览代码

[sohu] Enhance error handling

Yen Chi Hsuan 10 年之前
父节点
当前提交
3dbec410a0
共有 1 个文件被更改,包括 13 次插入1 次删除
  1. 13 1
      youtube_dl/extractor/sohu.py

+ 13 - 1
youtube_dl/extractor/sohu.py

@@ -8,7 +8,10 @@ from ..compat import (
     compat_str,
     compat_str,
     compat_urllib_request
     compat_urllib_request
 )
 )
-from ..utils import sanitize_url_path_consecutive_slashes
+from ..utils import (
+    sanitize_url_path_consecutive_slashes,
+    ExtractorError,
+)
 
 
 
 
 class SohuIE(InfoExtractor):
 class SohuIE(InfoExtractor):
@@ -117,6 +120,15 @@ class SohuIE(InfoExtractor):
             r'var vid ?= ?["\'](\d+)["\']',
             r'var vid ?= ?["\'](\d+)["\']',
             webpage, 'video path')
             webpage, 'video path')
         vid_data = _fetch_data(vid, mytv)
         vid_data = _fetch_data(vid, mytv)
+        if vid_data['play'] != 1:
+            if vid_data.get('status') == 12:
+                raise ExtractorError(
+                    'Sohu said: There\'s something wrong in the video.',
+                    expected=True)
+            else:
+                raise ExtractorError(
+                    'Sohu said: The video is only licensed to users in Mainland China.',
+                    expected=True)
 
 
         formats_json = {}
         formats_json = {}
         for format_id in ('nor', 'high', 'super', 'ori', 'h2644k', 'h2654k'):
         for format_id in ('nor', 'high', 'super', 'ori', 'h2644k', 'h2654k'):