- webpage = self._download_webpage(url, video_id)
- video_params = self._parse_json(self._search_regex(
- r'videoParams\s*=\s*({.+?});', webpage, 'video params'), video_id)
- title = video_params.get('title') or video_params['seriesTitle']
- stream = next(s for s in video_params['playlist'] if s.get('type') == 'program')
-
- key = 'android.content.res.Resources'.encode('utf-8')
- time_str = str(int(time.time()))
- house_number = video_params.get('episodeHouseNumber')
- path = '/auth/hls/sign?ts={0}&hn={1}&d=android-mobile'.format(
- time_str, house_number)
- sig = hmac.new(key, path.encode('utf-8'), hashlib.sha256).hexdigest()
- auth_url = 'http://iview.abc.net.au{0}&sig={1}'.format(path, sig)
- token = self._download_webpage(auth_url, video_id)
-
- format_urls = []
+ video_params = self._download_json(
+ 'https://iview.abc.net.au/api/programs/' + video_id, video_id)
+ 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'))
+
+ house_number = video_params.get('episodeHouseNumber') or video_id
+ path = '/auth/hls/sign?ts={0}&hn={1}&d=android-tablet'.format(
+ int(time.time()), house_number)
+ sig = hmac.new(
+ b'android.content.res.Resources',
+ path.encode('utf-8'), hashlib.sha256).hexdigest()
+ token = self._download_webpage(
+ 'http://iview.abc.net.au{0}&sig={1}'.format(path, sig), video_id)