def get_hls_url(self, release_url): with requests_cache.disabled(): doc = grab_xml("https:" + release_url.replace("http:", "").replace("https:", "")) video = doc.xpath("//smil:video", namespaces=NS) if not video: return video_url = video[0].attrib["src"] return video_url
def get_auth_details(self): auth_doc = grab_xml(AUTH_URL, 0) NS = { "auth": "http://www.abc.net.au/iView/Services/iViewHandshaker", } token = auth_doc.xpath("//auth:tokenhd/text()", namespaces=NS)[0] token_url = auth_doc.xpath("//auth:server/text()", namespaces=NS)[0] token_hostname = urllib.parse.urlparse(token_url).netloc return token, token_hostname
def download(self): doc = grab_html(VIDEO_URL % self.video_id, 0) player_params = self.get_player_params(doc) release_url = player_params["releaseUrls"]["html"] doc = grab_xml(release_url, 0) video = doc.xpath("//smil:video", namespaces=NS)[0] video_url = video.attrib["src"] if not video_url: raise Exception("Unsupported video %s: %s" % (self.video_id, self.title)) filename = self.title + ".ts" return download_hls(filename, video_url)