youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 3859ebeee6d6448240176ef5e4c20f6b1d1db795
parent d50aca41f8e3aa3af8e19ec91100283b555ac59f
Author: Sergey M․ <dstftw@gmail.com>
Date:   Fri,  5 Aug 2016 22:49:19 +0700

[tvplay] Capture and output native error message

Diffstat:
Myoutube_dl/extractor/tvplay.py | 26++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)

diff --git 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