Browse Source

[youku] better error handling

blocked videos used to cause death by TypeError, now we report what the
server says
master
tewe 11 years ago
committed by Jaime Marquínez Ferrándiz
parent
commit
4a2080e407
1 changed files with 7 additions and 0 deletions
  1. 7
      youtube_dl/extractor/youku.py

7
youtube_dl/extractor/youku.py

@ -66,6 +66,12 @@ class YoukuIE(InfoExtractor):
self.report_extraction(video_id)
try:
config = json.loads(jsondata)
error_code = config['data'][0].get('error_code')
if error_code:
# -8 means blocked outside China.
error = config['data'][0].get('error') # Chinese and English, separated by newline.
raise ExtractorError(error or u'Server reported error %i' % error_code,
expected=True)
video_title = config['data'][0]['title']
seed = config['data'][0]['seed']
@ -89,6 +95,7 @@ class YoukuIE(InfoExtractor):
fileid = config['data'][0]['streamfileids'][format]
keys = [s['k'] for s in config['data'][0]['segs'][format]]
# segs is usually a dictionary, but an empty *list* if an error occured.
except (UnicodeDecodeError, ValueError, KeyError):
raise ExtractorError(u'Unable to extract info section')

Loading…
Cancel
Save