Improved error message when 'playlist' is missing from video_params.
Error messaged will use the 'statusMessage', if available. This will give messages like: * "This episode is no longer available in iview." * "This episode is not yet available in iview." These additional lines are removed from the 'statusMessage': "Programs are normally available for 14 days." "You may enjoy similar programs to this, shown below." "Learn more about program availability in the FAQs, under Support."
This commit is contained in:
parent
c43eb64539
commit
2e0f5efcf1
@ -182,6 +182,12 @@ class ABCIViewIE(InfoExtractor):
|
|||||||
video_id = self._match_id(url)
|
video_id = self._match_id(url)
|
||||||
video_params = self._download_json(
|
video_params = self._download_json(
|
||||||
'https://iview.abc.net.au/api/programs/' + video_id, video_id)
|
'https://iview.abc.net.au/api/programs/' + video_id, video_id)
|
||||||
|
if 'playlist' not in video_params:
|
||||||
|
error_message = video_params.get('statusMessage')
|
||||||
|
if error_message:
|
||||||
|
error_message = error_message.splitlines()[0]
|
||||||
|
raise ExtractorError(error_message, expected=True)
|
||||||
|
raise ExtractorError('no playlist information found in video params')
|
||||||
title = unescapeHTML(video_params.get('title') or video_params['seriesTitle'])
|
title = unescapeHTML(video_params.get('title') or video_params['seriesTitle'])
|
||||||
stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))
|
stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user