def find_hls_url(self, playlist):
for video in playlist:
if video["type"] == "program":
- return video["hls-high"].replace("http:", "https:")
- raise Exception("Missing hls-high program stream for " + self.video_key)
+ for quality in ["hls-plus", "hls-high"]:
+ if quality in video:
+ return video[quality].replace("http:", "https:")
+ raise Exception("Missing program stream for " + self.video_key)
def get_auth_details(self):
with requests_cache.disabled():
def fill_children(self):
info = grab_json(self.url)
- for index_list in info["index"]:
- for ep_info in index_list["episodes"]:
- self.add_series(ep_info)
+ for key in ["carousels", "collections", "index"]:
+ for collection_list in info[key]:
+ for ep_info in collection_list.get("episodes", []):
+ self.add_series(ep_info)
def add_series(self, ep_info):
title = ep_info["seriesTitle"]
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):
category("Lifestyle", "lifestyle")
category("News & Current Affairs", "news")
category("Panel & Discussion", "panel")
+ category("Regional Australia", "regional")
category("Sport", "sport")
def load_channels(self):