def fill_children(self): ep_info = grab_json(self.url) 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.get("episodes", []): add_episode(self, ep_info)
def fill_children(self): info = grab_json(self.url) for key in ["carousels", "collections", "index"]: 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 fill_children(self): full_video_list = grab_json(FULL_VIDEO_LIST, 3600) category_and_entry_data = self.explode_videos_to_unique_categories( full_video_list) for category_path, entry_data in category_and_entry_data: nav_node = self.create_nav_node(self, category_path) nav_node.create_video_node(entry_data)
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"]) auth_token = self.get_auth_token() video_url = append_to_qs(video_url, {"hdnea": auth_token}) return download_hls(self.filename, video_url)
def fetch_entries_page(self, channel, offset, page_size): url = append_to_qs(FULL_VIDEO_LIST, { "range": "%s-%s" % (offset, offset+page_size-1), "byCategories": channel, }) data = grab_json(url) if "entries" not in data: raise Exception("Missing data in SBS response", data) return data["entries"]
def fill_children(self): doc = grab_json(SERIES_LIST_URL) for series in doc["Browse TV"]["Shows"]: title = series["title"] query = series["query"] + series["episodefilter"] expected_tv_show = series["tv_show"] TenSeriesNode(title, self, query, expected_tv_show)
def download(self): info = grab_json(API_URL + "/programs/" + self.video_key, 3600) if "playlist" not in info: return False logging.debug("info json: %r", info) video_url = self.find_hls_url(info["playlist"]) logging.debug("video url find_hls_url: %r", video_url) token, token_hostname = self.get_auth_details() video_url = self.add_auth_token_to_url(video_url, token, token_hostname) return download_hls(self.filename, video_url)
def download(self): vid_id = self.get_video_id() qs = dict(METADATA_QUERY.items()) # copy.. qs["q"] = qs["q"] % (vid_id, self.generate_session()) url = METADATA_BASE + urllib.urlencode(qs) doc = grab_json(url, 0, skip_function=True) stream_data = doc["query"]["results"]["mediaObj"][0]["streams"][0] vbase = stream_data["host"] vpath = stream_data["path"] filename = self.title + ".flv" return download_rtmp(filename, vbase, vpath, HASH_URL)
def fill_children(self): page_number = 0 while page_number < 100: url = self.get_page_url(self.query, page_number) page_number += 1 page = grab_json(url) items = page["items"] if len(items) == 0: break for video_desc in items: self.process_video(video_desc)
def fill_children(self): page_number = 0 while page_number < 100: url = self.get_all_videos_url(page_number) page_number += 1 page = grab_json(url, 3600) items = page["items"] if len(items) == 0: break for video_desc in items: self.process_video(video_desc)
def load_categories(self): by_category_node = Node("By Category", self) data = grab_json(API_URL + "/categories") categories = data["categories"] for category_data in categories: category_title = category_data["title"] category_title = string.capwords(category_title) category_href = category_data["href"] IviewIndexNode(category_title, by_category_node, API_URL + "/" + category_href)
def try_hds(self): desc_url = append_to_qs(BRIGHTCOVE_API, { "token": self.token, "command": "find_video_by_id", "video_fields": "hdsManifestUrl", "video_id": self.video_id, }) doc = grab_json(desc_url, 3600) video_url = doc["hdsManifestUrl"] if not video_url: return filename = self.title + ".flv" return lambda: download_hds(filename, video_url)
def try_hds(self): desc_url = append_to_qs( BRIGHTCOVE_API, { "token": self.token, "command": "find_video_by_id", "video_fields": "hdsManifestUrl", "video_id": self.video_id, }) doc = grab_json(desc_url, 3600) video_url = doc["hdsManifestUrl"] if not video_url: return filename = self.title + ".flv" return lambda: download_hds(filename, video_url)
def load_channels(self): by_channel_node = Node("By Channel", self) data = grab_json(API_URL + "/channel") channels = data["channels"] for channel_data in channels: channel_id = channel_data["categoryID"] channel_title = { "abc1": "ABC1", "abc2": "ABC2", "abc3": "ABC3", "abc4kids": "ABC4Kids", "news": "News", "abcarts": "ABC Arts", }.get(channel_id, channel_data["title"]) channel_href = channel_data["href"] IviewIndexNode(channel_title, by_channel_node, API_URL + "/" + channel_href)
def fill_children(self): info = grab_json(self.url) for ep_info in info: add_episode(self, ep_info)
def fill_children(self): info = grab_json(self.url, 3600) for ep_info in info: self.add_episode(ep_info)
def fill_children(self): info = grab_json(self.url, 3600) for index_list in info["index"]: for ep_info in index_list["episodes"]: self.add_episode(ep_info)
def download(self): info = grab_json(API_URL + "/programs/" + self.video_key, 3600) 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) return download_hls(self.filename, video_url)
def fill_children(self): full_video_list = grab_json(FULL_VIDEO_LIST, 3600) category_and_entry_data = self.explode_videos_to_unique_categories(full_video_list) for category_path, entry_data in category_and_entry_data: nav_node = self.create_nav_node(self, category_path) nav_node.create_video_node(entry_data)