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:
David Hood 2019-04-27 22:30:54 +10:00
parent c43eb64539
commit 2e0f5efcf1

View File

@ -182,6 +182,12 @@ class ABCIViewIE(InfoExtractor):
video_id = self._match_id(url)
video_params = self._download_json(
'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'])
stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))