Update Scripts

This commit is contained in:
Mike 2026-01-19 08:14:47 +02:00
parent e6d2e8891e
commit cb547d2fde
3 changed files with 19 additions and 25 deletions

View File

@ -24,7 +24,7 @@ class AUBC(Service):
Service code for ABC iView streaming service (https://iview.abc.net.au/). Service code for ABC iView streaming service (https://iview.abc.net.au/).
\b \b
Version: 1.0.3 Version: 1.0.4
Author: stabbedbybrick Author: stabbedbybrick
Authorization: None Authorization: None
Robustness: Robustness:
@ -119,8 +119,8 @@ class AUBC(Service):
captions = next((x.get("captions") for x in playlist if x["type"] == "program"), None) captions = next((x.get("captions") for x in playlist if x["type"] == "program"), None)
title.data["protected"] = streams.get("protected", False) title.data["protected"] = streams.get("protected", False)
if "720" in streams: if hd := streams.get("720"):
streams["1080"] = streams["720"].replace("720", "1080") streams["1080"] = hd.replace("720.mpd", "1080.mpd")
manifest = next( manifest = next(
(url for key in ["1080", "720", "sd", "sd-low"] if key in streams (url for key in ["1080", "720", "sd", "sd-low"] if key in streams
@ -130,7 +130,7 @@ class AUBC(Service):
) )
if not manifest: if not manifest:
raise ValueError("Could not find a manifest for this title") raise ValueError("Could not find a manifest for this title")
tracks = DASH.from_url(manifest, self.session).to_tracks(title.language) tracks = DASH.from_url(manifest, self.session).to_tracks(title.language)
for track in tracks.audio: for track in tracks.audio:

View File

@ -24,7 +24,7 @@ class RTE(Service):
Service code for RTE Player streaming service (https://www.rte.ie/player/). Service code for RTE Player streaming service (https://www.rte.ie/player/).
\b \b
Version: 1.0.3 Version: 1.0.5
Author: stabbedbybrick Author: stabbedbybrick
Authorization: None Authorization: None
Robustness: Robustness:
@ -62,10 +62,12 @@ class RTE(Service):
self.feed = self.config["endpoints"]["feed"] self.feed = self.config["endpoints"]["feed"]
self.license = self.config["endpoints"]["license"] self.license = self.config["endpoints"]["license"]
self.session.headers.update(self.config["headers"])
def search(self) -> Generator[SearchResult, None, None]: def search(self) -> Generator[SearchResult, None, None]:
params = { params = {
"byProgramType": "Series|Movie", "byProgramType": "Series|Movie",
"q": f"title:({self.title})", "q": f"*{self.title}*",
"range": "0-40", "range": "0-40",
"schema": "2.15", "schema": "2.15",
"sort": "rte$rank|desc", "sort": "rte$rank|desc",
@ -261,16 +263,10 @@ class RTE(Service):
"Content may be geo-restricted to IE" "Content may be geo-restricted to IE"
) )
def _request(self, api: str, params: dict = None, headers: dict = None) -> Any[dict | str]: def _request(self, api: str, **kwargs) -> Any[dict | str]:
url = urljoin(self.base_url, api) url = urljoin(self.base_url, api)
self.session.headers.update(self.config["headers"])
if params: prep = self.session.prepare_request(Request("GET", url, **kwargs))
self.session.params.update(params)
if headers:
self.session.headers.update(headers)
prep = self.session.prepare_request(Request("GET", url))
response = self.session.send(prep) response = self.session.send(prep)
if response.status_code != 200: if response.status_code != 200:

View File

@ -21,7 +21,7 @@ class STV(Service):
Service code for STV Player streaming service (https://player.stv.tv/). Service code for STV Player streaming service (https://player.stv.tv/).
\b \b
Version: 1.0.1 Version: 1.0.3
Author: stabbedbybrick Author: stabbedbybrick
Authorization: None Authorization: None
Robustness: Robustness:
@ -108,36 +108,34 @@ class STV(Service):
if episode.get("playerSeries") and re.match(r"Series \d+", episode["playerSeries"]["name"]) if episode.get("playerSeries") and re.match(r"Series \d+", episode["playerSeries"]["name"])
else 0, else 0,
number=int(episode.get("number", 0)), number=int(episode.get("number", 0)),
name=episode.get("title", "").lstrip("0123456789. ").lstrip(), name=re.sub(r"^\d+\.\s+", "", episode.get("title", "")),
language="en", language="en",
data=episode, data=episode,
) )
] ]
elif kind == "summary": elif kind == "summary":
r = self.session.get(self.base + f"programmes/{slug}") r = self.session.get(self.base + f"episodes?programme.guid={slug}&limit=999")
r.raise_for_status() if not r.ok:
data = r.json() raise ConnectionError(f"Failed to find content for {slug}")
series = [series.get("guid") for series in data["results"]["series"]] data = r.json()
seasons = [self.session.get(self.base + f"episodes?series.guid={i}").json() for i in series]
episodes = [ episodes = [
Episode( Episode(
id_=episode["video"].get("id"), id_=episode["video"].get("id"),
service=self.__class__, service=self.__class__,
title=data["results"].get("name"), title=episode["programme"].get("name"),
season=int(episode["playerSeries"]["name"].split(" ")[1]) season=int(episode["playerSeries"]["name"].split(" ")[1])
if episode.get("playerSeries") if episode.get("playerSeries")
and re.match(r"Series \d+", episode["playerSeries"]["name"]) and re.match(r"Series \d+", episode["playerSeries"]["name"])
else 0, else 0,
number=int(episode.get("number", 0)), number=int(episode.get("number", 0)),
name=episode.get("title", "").lstrip("0123456789. ").lstrip(), name=re.sub(r"^\d+\.\s+", "", episode.get("title", "")),
language="en", language="en",
data=episode, data=episode,
) )
for season in seasons for episode in data["results"]
for episode in season["results"]
] ]
self.session.headers.pop("stv-drm") self.session.headers.pop("stv-drm")