fix(iP): Update search API
This commit is contained in:
parent
1fe698966f
commit
65bd6ddd56
@ -79,22 +79,20 @@ class iP(Service):
|
|||||||
self.vcodec = "H.265"
|
self.vcodec = "H.265"
|
||||||
|
|
||||||
def search(self) -> Generator[SearchResult, None, None]:
|
def search(self) -> Generator[SearchResult, None, None]:
|
||||||
params = {
|
r = self.session.get(self.config["endpoints"]["search"], params={"q": self.title})
|
||||||
"q": self.title,
|
|
||||||
"apikey": self.config["api_key"],
|
|
||||||
}
|
|
||||||
|
|
||||||
r = self.session.get(self.config["endpoints"]["search"], params=params)
|
|
||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
|
|
||||||
results = r.json()
|
results = r.json()
|
||||||
for result in results["results"]:
|
for result in results["new_search"]["results"]:
|
||||||
|
programme_type = result.get("type")
|
||||||
|
category = result.get("labels", {}).get("category", "")
|
||||||
|
path = "episode" if programme_type == "episode" else "episodes"
|
||||||
yield SearchResult(
|
yield SearchResult(
|
||||||
id_=result.get("uri").split(":")[-1],
|
id_=result.get("id"),
|
||||||
title=result.get("title"),
|
title=result.get("title"),
|
||||||
description=result.get("synopsis"),
|
description=result.get("synopses", {}).get("small"),
|
||||||
label="series" if result.get("type", "") == "brand" else result.get("type"),
|
label=programme_type + " - " + category,
|
||||||
url=result.get("url"),
|
url=f"https://www.bbc.co.uk/iplayer/{path}/{result.get('id')}",
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_titles(self) -> Union[Movies, Series]:
|
def get_titles(self) -> Union[Movies, Series]:
|
||||||
|
@ -8,4 +8,4 @@ endpoints:
|
|||||||
playlist: https://www.bbc.co.uk/programmes/{pid}/playlist.json
|
playlist: https://www.bbc.co.uk/programmes/{pid}/playlist.json
|
||||||
open: https://{}/mediaselector/6/select/version/2.0/mediaset/{}/vpid/{}/
|
open: https://{}/mediaselector/6/select/version/2.0/mediaset/{}/vpid/{}/
|
||||||
secure: https://{}/mediaselector/6/select/version/2.0/vpid/{}/format/json/mediaset/{}/proto/https
|
secure: https://{}/mediaselector/6/select/version/2.0/vpid/{}/format/json/mediaset/{}/proto/https
|
||||||
search: https://search.api.bbci.co.uk/formula/iplayer-ibl-root
|
search: https://ibl.api.bbc.co.uk/ibl/v1/new-search
|
||||||
|
Loading…
x
Reference in New Issue
Block a user