X-Git-Url: https://code.delx.au/webdl/blobdiff_plain/397c1348bf7a49ad165d51d71a1426756ad03b54..7614fed5ca660446a173de6a1cfb8d417bd6db0d:/iview.py diff --git a/iview.py b/iview.py index 55101d1..50395cf 100644 --- a/iview.py +++ b/iview.py @@ -2,8 +2,8 @@ from common import grab_json, grab_xml, Node, download_hls import requests_cache import urllib.parse -API_URL = "http://iview.abc.net.au/api" -AUTH_URL = "http://iview.abc.net.au/auth" +API_URL = "https://iview.abc.net.au/api" +AUTH_URL = "https://iview.abc.net.au/auth" def format_episode_title(series, ep): if ep: @@ -53,6 +53,8 @@ class IviewEpisodeNode(Node): def download(self): info = grab_json(API_URL + "/programs/" + self.video_key) + if "playlist" not in info: + return False video_url = self.find_hls_url(info["playlist"]) token, token_hostname= self.get_auth_details() video_url = self.add_auth_token_to_url(video_url, token, token_hostname) @@ -67,9 +69,10 @@ class IviewIndexNode(Node): def fill_children(self): info = grab_json(self.url) for key in ["carousels", "collections", "index"]: - for collection_list in info[key]: - for ep_info in collection_list["episodes"]: - self.add_series(ep_info) + for collection_list in info.get(key, None): + if isinstance(collection_list, dict): + for ep_info in collection_list.get("episodes", []): + self.add_series(ep_info) def add_series(self, ep_info): title = ep_info["seriesTitle"] @@ -89,7 +92,7 @@ class IviewSeriesNode(Node): series_slug = ep_info["href"].split("/")[1] series_url = API_URL + "/series/" + series_slug + "/" + ep_info["seriesHouseNumber"] info = grab_json(series_url) - for ep_info in info["episodes"]: + for ep_info in info.get("episodes", []): add_episode(self, ep_info) class IviewFlatNode(Node): @@ -117,6 +120,7 @@ class IviewRootNode(Node): category("Lifestyle", "lifestyle") category("News & Current Affairs", "news") category("Panel & Discussion", "panel") + category("Regional Australia", "regional") category("Sport", "sport") def load_channels(self):