diff options
| author | jade (winter) | 2026-07-19 17:51:11 +0100 |
|---|---|---|
| committer | jade (winter) | 2026-07-19 17:51:11 +0100 |
| commit | 5f301e85b24f3a219c3020a8e24113c31a2a1058 (patch) | |
| tree | f0b15a1dc34af78270718fabf933d075ccd0d028 /lib/mediaselector.php | |
| parent | 92d27365cadbd98e6d709673cd0729de8793c494 (diff) | |
fix so much stuff + add hls player
Diffstat (limited to 'lib/mediaselector.php')
| -rw-r--r-- | lib/mediaselector.php | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/mediaselector.php b/lib/mediaselector.php new file mode 100644 index 0000000..df19c8d --- /dev/null +++ b/lib/mediaselector.php @@ -0,0 +1,27 @@ +<?php + +const MEDIASELECTOR_BASE = 'https://open.live.bbc.co.uk/mediaselector/6/select'; + +function mediaselector_lookup(array $options): stdClass { + // ['version' => '3.0', 'cvid' => 'urn:bbc:pips:pid:...'] + $url = MEDIASELECTOR_BASE; + $options['format'] = 'json'; + foreach ($options as $k => $v) { + $url .= "/$k/$v"; + } + return json_decode(file_get_contents($url)); +} + +function mediaselector_findHls(string $vpid): ?string { + $resp = mediaselector_lookup([ + 'version' => '3.0', + 'proto' => 'https', + 'transferformat' => 'hls', + 'mediaset' => 'pc', + 'cvid' => "urn:bbc:pips:pid:$vpid", + ]); + if (isset($resp->result) && $resp->result == 'selectionunavailable') { + return null; + } + return $resp->media[0]->connection[0]->href; +} |
