浏览代码

[streamango] Capture and output error messages

Sergey M․ 7 年之前
父节点
当前提交
ff274e3c16
共有 1 个文件被更改,包括 11 次插入0 次删除
  1. 11 0
      youtube_dl/extractor/streamango.py

+ 11 - 0
youtube_dl/extractor/streamango.py

@@ -7,6 +7,7 @@ from .common import InfoExtractor
 from ..compat import compat_chr
 from ..compat import compat_chr
 from ..utils import (
 from ..utils import (
     determine_ext,
     determine_ext,
+    ExtractorError,
     int_or_none,
     int_or_none,
     js_to_json,
     js_to_json,
 )
 )
@@ -100,6 +101,16 @@ class StreamangoIE(InfoExtractor):
                     'height': int_or_none(video.get('height')),
                     'height': int_or_none(video.get('height')),
                     'tbr': int_or_none(video.get('bitrate')),
                     'tbr': int_or_none(video.get('bitrate')),
                 })
                 })
+
+        if not formats:
+            error = self._search_regex(
+                r'<p[^>]+\bclass=["\']lead[^>]+>(.+?)</p>', webpage,
+                'error', default=None)
+            if not error and '>Sorry' in webpage:
+                error = 'Video %s is not available' % video_id
+            if error:
+                raise ExtractorError(error, expected=True)
+
         self._sort_formats(formats)
         self._sort_formats(formats)
 
 
         return {
         return {