diff options
| author | Sergey M․ <dstftw@gmail.com> | 2016-08-05 22:49:19 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2016-08-05 22:50:42 +0700 | 
| commit | 3859ebeee6d6448240176ef5e4c20f6b1d1db795 (patch) | |
| tree | b15d983f5139bb07da021920143c75aadab79011 /youtube_dl/extractor/tvplay.py | |
| parent | d50aca41f8e3aa3af8e19ec91100283b555ac59f (diff) | |
[tvplay] Capture and output native error message
Diffstat (limited to 'youtube_dl/extractor/tvplay.py')
| -rw-r--r-- | youtube_dl/extractor/tvplay.py | 26 | 
1 files changed, 18 insertions, 8 deletions
diff --git a/youtube_dl/extractor/tvplay.py b/youtube_dl/extractor/tvplay.py index 3d4c576c8..150bde663 100644 --- a/youtube_dl/extractor/tvplay.py +++ b/youtube_dl/extractor/tvplay.py @@ -5,15 +5,17 @@ import re  from .common import InfoExtractor  from ..compat import ( +    compat_HTTPError,      compat_str,      compat_urlparse,  )  from ..utils import ( +    determine_ext, +    ExtractorError, +    int_or_none,      parse_iso8601,      qualities, -    determine_ext,      update_url_query, -    int_or_none,  ) @@ -206,12 +208,15 @@ class TVPlayIE(InfoExtractor):          title = video['title'] -        if video.get('is_geo_blocked'): -            self.report_warning( -                'This content might not be available in your country due to copyright reasons') - -        streams = self._download_json( -            'http://playapi.mtgx.tv/v1/videos/stream/%s' % video_id, video_id, 'Downloading streams JSON') +        try: +            streams = self._download_json( +                'http://playapi.mtgx.tv/v1/videos/stream/%s' % video_id, +                video_id, 'Downloading streams JSON') +        except ExtractorError as e: +            if isinstance(e.cause, compat_HTTPError) and e.cause.code == 403: +                msg = self._parse_json(e.cause.read().decode('utf-8'), video_id) +                raise ExtractorError(msg['msg'], expected=True) +            raise          quality = qualities(['hls', 'medium', 'high'])          formats = [] @@ -251,6 +256,11 @@ class TVPlayIE(InfoExtractor):                          'url': video_url,                      })                  formats.append(fmt) + +        if not formats and video.get('is_geo_blocked'): +            self.raise_geo_restricted( +                'This content might not be available in your country due to copyright reasons') +          self._sort_formats(formats)          # TODO: webvtt in m3u8  | 
