@oddin-gg/havik-player 2.16.3 → 2.16.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/havik-player.global.js +2 -2
- package/dist/havik-player.global.js.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +127 -98
- package/dist/index.js.map +1 -1
- package/docs/API.md +12 -0
- package/embed/index.html +1 -1
- package/examples/vanilla.html +1 -1
- package/package.json +1 -1
package/docs/API.md
CHANGED
|
@@ -1115,6 +1115,18 @@ play DRM. The built-in error card still offers Retry (it re-resolves and re-atta
|
|
|
1115
1115
|
which can recover a transient license failure); an unsupported device will simply fail
|
|
1116
1116
|
the same way again.
|
|
1117
1117
|
|
|
1118
|
+
One license `403` is handled before it reaches you: when the signed license URL the
|
|
1119
|
+
player holds carries an `exp` that has already passed. The `licenseRefreshMs` timer
|
|
1120
|
+
could not run because the tab was hidden long enough for the browser to freeze it, or
|
|
1121
|
+
the machine slept, so the next license request after refocus goes out with a stale
|
|
1122
|
+
signature and the server rejects it. That is the signature's lifetime, not an
|
|
1123
|
+
entitlement decision, so the player re-resolves and re-attaches once on its own (the
|
|
1124
|
+
same path as Retry), emitting the `FORBIDDEN` error as a `warning` instead of ending
|
|
1125
|
+
the session. A second `403` before a key is usable on the fresh URL is fatal as usual.
|
|
1126
|
+
The check is made on the viewer's clock and covers Widevine (hls.js) only: a device
|
|
1127
|
+
clock more than ~10 minutes slow still sees the plain fatal `FORBIDDEN`, and FairPlay
|
|
1128
|
+
(Safari) keeps its existing fatal path.
|
|
1129
|
+
|
|
1118
1130
|
```ts
|
|
1119
1131
|
import { PlaybackError } from '@oddin-gg/havik-player';
|
|
1120
1132
|
try {
|
package/embed/index.html
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
beacons endpoint can be derived and QoE analytics is silently off.
|
|
29
29
|
`analytics` is honoured from the injected config only, never the query.
|
|
30
30
|
-->
|
|
31
|
-
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.16.
|
|
31
|
+
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.16.5/dist/havik-player.global.js" integrity="sha384-SRvsbTOrE/wt0jWSx8K2zJPfMs/b/gAlXVXO1Sp9pCBtvYq8SZODzx54ZbCUrZdq" crossorigin="anonymous"></script>
|
|
32
32
|
<script>
|
|
33
33
|
HavikPlayer.bootEmbed();
|
|
34
34
|
</script>
|
package/examples/vanilla.html
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
shipped in each npm release is pinned to that release with Subresource
|
|
13
13
|
Integrity, injected at publish time (scripts/inject-sri.mjs). In
|
|
14
14
|
production, always use a pinned + SRI'd tag like the released copy. -->
|
|
15
|
-
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.16.
|
|
15
|
+
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.16.5/dist/havik-player.global.js" integrity="sha384-SRvsbTOrE/wt0jWSx8K2zJPfMs/b/gAlXVXO1Sp9pCBtvYq8SZODzx54ZbCUrZdq" crossorigin="anonymous"></script>
|
|
16
16
|
<script>
|
|
17
17
|
(async () => {
|
|
18
18
|
const player = await HavikPlayer.createPlayer({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oddin-gg/havik-player",
|
|
3
|
-
"version": "2.16.
|
|
3
|
+
"version": "2.16.5",
|
|
4
4
|
"description": "Havik HTML5 player SDK — LL-HLS + DRM playback for Oddin live streams (managed, bring-your-own-player, and iframe-embed modes).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|