diff options
author | remitamine <remitamine@gmail.com> | 2015-11-26 18:38:57 +0100 |
---|---|---|
committer | remitamine <remitamine@gmail.com> | 2016-03-14 22:24:52 +0100 |
commit | d13bdc38241b52ff942c02ac2c15def4520b39a5 (patch) | |
tree | 2d29b442a18ea2c5f00844c543fbbaa4821d92db | |
parent | 744daf941843bba00e47c37e85df91637861b596 (diff) |
[brightcove] raise ExtractorError on 403 errors and fix regex to work with tenplay
-rw-r--r-- | youtube_dl/extractor/brightcove.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index c947337f9..5258b907c 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -13,6 +13,7 @@ from ..compat import ( compat_urllib_parse_urlparse, compat_urlparse, compat_xml_parse_error, + compat_HTTPError, ) from ..utils import ( determine_ext, @@ -424,7 +425,7 @@ class BrightcoveNewIE(InfoExtractor): </video>.*? <script[^>]+ src=["\'](?:https?:)?//players\.brightcove\.net/ - (\d+)/([\da-f-]+)_([^/]+)/index\.min\.js + (\d+)/([\da-f-]+)_([^/]+)/index(?:\.min)?\.js ''', webpage): entries.append( 'http://players.brightcove.net/%s/%s_%s/index.html?videoId=%s' @@ -458,7 +459,13 @@ class BrightcoveNewIE(InfoExtractor): 'https://edge.api.brightcove.com/playback/v1/accounts/%s/videos/%s' % (account_id, video_id), headers={'Accept': 'application/json;pk=%s' % policy_key}) - json_data = self._download_json(req, video_id) + try: + json_data = self._download_json(req, video_id) + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError) and e.cause.code == 403: + json_data = self._parse_json(e.cause.read().decode(), video_id) + raise ExtractorError(json_data[0]['message'], expected=True) + raise title = json_data['name'] |