From bd33694259ce7b32c78663cefdc9a8d139a00dc1 Mon Sep 17 00:00:00 2001 From: zhengxin Date: Tue, 20 Oct 2015 16:54:05 +0800 Subject: [PATCH] add error throwing --- youtube_dl/extractor/imooc.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/imooc.py b/youtube_dl/extractor/imooc.py index f42f67873..eeef44d73 100644 --- a/youtube_dl/extractor/imooc.py +++ b/youtube_dl/extractor/imooc.py @@ -8,6 +8,10 @@ from ..compat import ( compat_urllib_parse_unquote, compat_urllib_request, ) +from ..utils import ( + ExtractorError, + HEADRequest, +) class ImoocVideoIE(InfoExtractor): _VALID_URL = r'http://www.imooc.com/video/(?P[0-9]+)' @@ -37,9 +41,24 @@ class ImoocVideoIE(InfoExtractor): json_url = 'http://www.imooc.com/course/ajaxmediainfo/?mid=%s&mode=flash' % video_id data = self._download_json(json_url, video_id, 'Downloading video formats') - url = data['data']['result']['mpath'][0] + if data['result'] == 0: + urls = data['data']['result']['mpath'] + title = data['data']['result']['name'] + + for i, url in enumerate(urls): + req = HEADRequest(url) + res = self._request_webpage( + req, video_id, note='Testing video URL %d' % i, errnote=False) + if res: + break + else: + raise ExtractorError('No working video URLs found') + + else: + print data['msg'] + raise ValueError(data['msg']) + - title = data['data']['result']['name'] return { 'id': video_id,