]> code.delx.au - webdl/commitdiff
Use https wherever possible
authorJames Bunton <jamesbunton@delx.net.au>
Sun, 21 Oct 2018 13:33:35 +0000 (00:33 +1100)
committerJames Bunton <jamesbunton@delx.net.au>
Sun, 21 Oct 2018 13:33:35 +0000 (00:33 +1100)
Thanks to Paul Wise

brightcove.py [deleted file]
iview.py
sbs.py
ten.py

diff --git a/brightcove.py b/brightcove.py
deleted file mode 100644 (file)
index efb961b..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-import logging
-import re
-import sys
-
-from common import grab_json, download_hls, download_hds, Node, append_to_qs
-
-CH9_TOKEN = "ogxhPgSphIVa2hhxbi9oqtYwtg032io4B4-ImwddYliFWHqS0UfMEw.."
-CH10_TOKEN = "90QPG7lQuLJAc4s82qA-T_UoDhz_VBFK6SGstWDB0jZH8eu1SZQDFA.."
-
-BRIGHTCOVE_API = "http://api.brightcove.com/services/library?"
-
-
-class BrightcoveVideoNode(Node):
-    def __init__(self, title, parent, token, video_id):
-        Node.__init__(self, title, parent)
-        self.can_download = True
-        self.token = token
-        self.video_id = video_id
-
-    def download(self):
-        f = None
-        try_streams = [self.try_hds, self.try_hls]
-
-        while f is None and try_streams:
-            f = try_streams.pop()()
-
-        if f is None:
-            logging.error("No HLS or HDS stream available for: %s", self.title)
-            return False
-
-        return f()
-
-    def try_hls(self):
-        desc_url = append_to_qs(BRIGHTCOVE_API, {
-            "token": self.token,
-            "command": "find_video_by_id",
-            "video_fields": "HLSURL",
-            "video_id": self.video_id,
-        })
-
-        doc = grab_json(desc_url)
-        video_url = doc and doc["HLSURL"]
-        if not video_url:
-            return
-
-        filename = self.title + ".ts"
-        return lambda: download_hls(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)
-        video_url = doc and doc["hdsManifestUrl"]
-        if not video_url:
-            return
-
-        filename = self.title + ".flv"
-        return lambda: download_hds(filename, video_url)
-
-
-class BrightcoveRootNode(Node):
-    def __init__(self, title, parent, token):
-        Node.__init__(self, title, parent)
-        self.token = token
-        self.series_nodes = {}
-
-    def get_series_node(self, series_name):
-        series_name = series_name.split("-")[0].strip()
-        key = series_name.lower()
-        node = self.series_nodes.get(key, None)
-        if node is None:
-            node = Node(series_name, self)
-            self.series_nodes[key] = node
-        return node
-
-    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)
-            items = page["items"]
-            if len(items) == 0:
-                break
-
-            for video_desc in items:
-                self.process_video(video_desc)
-
-    def process_video(self, video_desc):
-        if not video_desc["customFields"]:
-            return
-
-        video_id = video_desc["id"]
-        title = self.get_video_title(video_desc)
-        series_name = self.get_series_name(video_desc)
-
-        parent_node = self.get_series_node(series_name)
-        BrightcoveVideoNode(title, parent_node, self.token, video_id)
-
-    def get_video_title(self, video_desc):
-        raise NotImplementedError()
-
-    def get_series_name(self, video_desc):
-        raise NotImplementedError()
-
-    def get_all_videos_url(self, page_number):
-        raise NotImplementedError()
-
-
-class Ch9RootNode(BrightcoveRootNode):
-    def __init__(self, root_node):
-        BrightcoveRootNode.__init__(self, "Nine", root_node, CH9_TOKEN)
-
-    def get_video_title(self, video_desc):
-        title = video_desc["name"]
-        season = video_desc["customFields"].get("season", "")
-        episode = video_desc["customFields"].get("episode", "1").rjust(2, "0")
-        series = self.get_series_name(video_desc)
-
-        if re.match(R"ep(isode)?\s*[0-9]+\s*:", title.lower()):
-            title = title.split(":", 1)[1].strip()
-
-        title = "%s - %sx%s - %s" % (
-            series,
-            season,
-            episode,
-            title
-        )
-        return title
-
-    def get_series_name(self, video_desc):
-        series = video_desc["customFields"].get("series", None)
-        if not series:
-            series = video_desc["name"]
-        return series
-
-    def get_all_videos_url(self, page_number):
-        return append_to_qs(BRIGHTCOVE_API, {
-            "token": self.token,
-            "command": "search_videos",
-            "video_fields": "id,name,customFields",
-            "custom_fields": "series,season,episode",
-            "sort_by": "PUBLISH_DATE",
-            "page_number": str(page_number),
-        })
-
-
-class Ch10RootNode(BrightcoveRootNode):
-    def __init__(self, root_node):
-        BrightcoveRootNode.__init__(self, "Ten", root_node, CH10_TOKEN)
-
-    def get_video_title(self, video_desc):
-        return video_desc["name"]
-
-    def get_series_name(self, video_desc):
-        return video_desc["customFields"]["tv_show"]
-
-    def get_all_videos_url(self, page_number):
-        return append_to_qs(BRIGHTCOVE_API, {
-            "token": self.token,
-            "command": "search_videos",
-            "video_fields": "id,name,customFields",
-            "custom_fields": "tv_show",
-            "sort_by": "PUBLISH_DATE",
-            "any": "video_type_long_form:Full Episode",
-            "page_number": str(page_number),
-        })
-
-
-def fill_nodes(root_node):
-    # Ch9RootNode(root_node) -- Need a new API token
-    Ch10RootNode(root_node)
-
index dc1a1ae0b005f700071d0daf4f96c90536bf0d2f..b41aa3eb747ab53131ee19bf00b9f5210e6d987f 100644 (file)
--- 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:
diff --git a/sbs.py b/sbs.py
index 92b27cdb307282ab8b49bbdcbddb16d5d8cfc03a..043e63045f2f5e05dc04305011db2b71505a4905 100644 (file)
--- a/sbs.py
+++ b/sbs.py
@@ -3,7 +3,7 @@ from common import grab_html, grab_json, grab_xml, download_hls, download_mpd, N
 
 import json
 
-BASE = "http://www.sbs.com.au"
+BASE = "https://www.sbs.com.au"
 FULL_VIDEO_LIST = BASE + "/api/video_search/v2/?m=1&filters={section}{Programs}"
 VIDEO_URL = BASE + "/ondemand/video/single/%s"
 
@@ -47,7 +47,7 @@ class SbsVideoNode(Node):
 
     def get_hls_url(self, release_url):
         with requests_cache.disabled():
-            doc = grab_xml("http:" + release_url.replace("http:", "").replace("https:", ""))
+            doc = grab_xml("https:" + release_url.replace("http:", "").replace("https:", ""))
             video = doc.xpath("//smil:video", namespaces=NS)
             if not video:
                 return
diff --git a/ten.py b/ten.py
index 8a56a0c33bc83703e7fbb02a3815904261f1f6ce..557b6733afa8eee3176c6a42d0122002a0e8825d 100644 (file)
--- a/ten.py
+++ b/ten.py
@@ -1,6 +1,6 @@
 from common import grab_json, download_hls, Node, append_to_qs
 
-SERIES_LIST_URL = "http://vod.ten.com.au/config/android-v2"
+SERIES_LIST_URL = "https://vod.ten.com.au/config/android-v2"
 SERIES_DETAIL_URL = "https://v.tenplay.com.au/api/videos/bcquery"
 
 class TenVideoNode(Node):