commit: 017eb829343dfff9b70ab7f2278053f35cee953c
parent b1d798887e5bc26c938fe8c07ae5ccf382568f58
Author: Remita Amine <remitamine@gmail.com>
Date: Wed, 5 Oct 2016 18:27:02 +0100
[npo] detect geo restriction
Diffstat:
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import re
from .common import InfoExtractor
+from ..compat import compat_HTTPError
from ..utils import (
fix_xml_ampersands,
orderedSet,
@@ -10,6 +11,7 @@ from ..utils import (
qualities,
strip_jsonp,
unified_strdate,
+ ExtractorError,
)
@@ -181,9 +183,16 @@ class NPOIE(NPOBaseIE):
continue
streams = format_info.get('streams')
if streams:
- video_info = self._download_json(
- streams[0] + '&type=json',
- video_id, 'Downloading %s stream JSON' % format_id)
+ try:
+ video_info = self._download_json(
+ streams[0] + '&type=json',
+ video_id, 'Downloading %s stream JSON' % format_id)
+ except ExtractorError as ee:
+ if isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 404:
+ error = (self._parse_json(ee.cause.read().decode(), video_id, fatal=False) or {}).get('errorstring')
+ if error:
+ raise ExtractorError(error, expected=True)
+ raise
else:
video_info = format_info
video_url = video_info.get('url')