@mottosports/motto-video-player 1.0.1-rc.77 → 1.0.1-rc.79
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/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +47 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +47 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -449,7 +449,7 @@ var supportsWidevinePersistentLicenses = () => {
|
|
|
449
449
|
import initShakaPlayerMux from "@mux/mux-data-shakaplayer";
|
|
450
450
|
|
|
451
451
|
// package.json
|
|
452
|
-
var version = "1.0.1-rc.
|
|
452
|
+
var version = "1.0.1-rc.79";
|
|
453
453
|
|
|
454
454
|
// src/utils/licenseCache.ts
|
|
455
455
|
var PERSISTENT_LICENSE_PREFIX = "motto_lic_";
|
|
@@ -602,6 +602,17 @@ var clearAllPersistentLicenses = () => {
|
|
|
602
602
|
};
|
|
603
603
|
|
|
604
604
|
// src/hooks/useShakaPlayer.ts
|
|
605
|
+
var normalizeSource = (src) => {
|
|
606
|
+
if (typeof src === "string") {
|
|
607
|
+
return {
|
|
608
|
+
id: "",
|
|
609
|
+
url: src,
|
|
610
|
+
format: "auto",
|
|
611
|
+
drm: {}
|
|
612
|
+
};
|
|
613
|
+
}
|
|
614
|
+
return src;
|
|
615
|
+
};
|
|
605
616
|
var useShakaPlayer = ({
|
|
606
617
|
src,
|
|
607
618
|
shakaConfig,
|
|
@@ -614,7 +625,8 @@ var useShakaPlayer = ({
|
|
|
614
625
|
publicKey,
|
|
615
626
|
mottoToken,
|
|
616
627
|
hasAds = false,
|
|
617
|
-
hasSystem73 = false
|
|
628
|
+
hasSystem73 = false,
|
|
629
|
+
apiToken
|
|
618
630
|
}) => {
|
|
619
631
|
const playerRef = useRef(null);
|
|
620
632
|
const [isRetrying, setIsRetrying] = useState(false);
|
|
@@ -630,16 +642,17 @@ var useShakaPlayer = ({
|
|
|
630
642
|
const storedPersistentThisLoadRef = useRef(false);
|
|
631
643
|
const drmExpirationHandlerRef = useRef(null);
|
|
632
644
|
const getManifestUrl = useCallback(() => {
|
|
633
|
-
|
|
634
|
-
|
|
645
|
+
const playlistSrc = normalizeSource(src);
|
|
646
|
+
let manifestUrl = playlistSrc.url;
|
|
647
|
+
const isDRM = Boolean(playlistSrc.drm?.widevine || playlistSrc.drm?.fairplay || playlistSrc.drm?.playready);
|
|
635
648
|
if (isDRM) {
|
|
636
649
|
const isPlayReady = isPlayReadySupported();
|
|
637
|
-
if (isAppleDevice() &&
|
|
638
|
-
manifestUrl =
|
|
639
|
-
} else if (isPlayReady &&
|
|
640
|
-
manifestUrl =
|
|
650
|
+
if (isAppleDevice() && playlistSrc.drm?.fairplay?.certificateUrl) {
|
|
651
|
+
manifestUrl = playlistSrc.drm.fairplay.playlistUrl;
|
|
652
|
+
} else if (isPlayReady && playlistSrc.drm?.playready?.licenseUrl) {
|
|
653
|
+
manifestUrl = playlistSrc.drm.playready.playlistUrl;
|
|
641
654
|
} else {
|
|
642
|
-
manifestUrl =
|
|
655
|
+
manifestUrl = playlistSrc.drm?.widevine?.playlistUrl || "";
|
|
643
656
|
}
|
|
644
657
|
}
|
|
645
658
|
return manifestUrl;
|
|
@@ -684,9 +697,10 @@ var useShakaPlayer = ({
|
|
|
684
697
|
if (shakaConfig) {
|
|
685
698
|
player.configure(shakaConfig);
|
|
686
699
|
}
|
|
700
|
+
const playlistSrc = normalizeSource(src);
|
|
687
701
|
const manifestUrl = getManifestUrl();
|
|
688
|
-
let playlistId =
|
|
689
|
-
const isDRM = Boolean(
|
|
702
|
+
let playlistId = playlistSrc.id;
|
|
703
|
+
const isDRM = Boolean(playlistSrc.drm?.widevine || playlistSrc.drm?.fairplay || playlistSrc.drm?.playready);
|
|
690
704
|
storedPersistentThisLoadRef.current = false;
|
|
691
705
|
if (activeInitIdRef.current !== myInitId || isDestroyingRef.current) {
|
|
692
706
|
try {
|
|
@@ -698,23 +712,23 @@ var useShakaPlayer = ({
|
|
|
698
712
|
}
|
|
699
713
|
let storedSessionsMetadata = [];
|
|
700
714
|
if (isDRM && playlistId) {
|
|
701
|
-
storedSessionsMetadata = retrievePersistentLicense(playlistId,
|
|
715
|
+
storedSessionsMetadata = retrievePersistentLicense(playlistId, playlistSrc.drm?.licenseCacheKey ?? "");
|
|
702
716
|
}
|
|
703
717
|
if (isDRM) {
|
|
704
718
|
const drmConfig2 = {
|
|
705
719
|
servers: {
|
|
706
|
-
"com.widevine.alpha":
|
|
707
|
-
"com.microsoft.playready":
|
|
708
|
-
"com.apple.fps":
|
|
720
|
+
"com.widevine.alpha": playlistSrc.drm?.widevine?.licenseUrl,
|
|
721
|
+
"com.microsoft.playready": playlistSrc.drm?.playready?.licenseUrl,
|
|
722
|
+
"com.apple.fps": playlistSrc.drm?.fairplay?.licenseUrl
|
|
709
723
|
},
|
|
710
724
|
keySystemsMapping: {
|
|
711
|
-
// Fall back or reroute to the platform
|
|
725
|
+
// Fall back or reroute to the platform's recommended PlayReady CDM if needed
|
|
712
726
|
"com.microsoft.playready": "com.microsoft.playready.recommendation"
|
|
713
727
|
},
|
|
714
|
-
...
|
|
728
|
+
...playlistSrc.drm?.fairplay && {
|
|
715
729
|
advanced: {
|
|
716
730
|
"com.apple.fps": {
|
|
717
|
-
serverCertificateUri:
|
|
731
|
+
serverCertificateUri: playlistSrc.drm.fairplay.certificateUrl
|
|
718
732
|
}
|
|
719
733
|
}
|
|
720
734
|
}
|
|
@@ -819,6 +833,16 @@ var useShakaPlayer = ({
|
|
|
819
833
|
});
|
|
820
834
|
}
|
|
821
835
|
}
|
|
836
|
+
if (apiToken) {
|
|
837
|
+
const netEngine = player.getNetworkingEngine();
|
|
838
|
+
if (netEngine) {
|
|
839
|
+
netEngine.registerRequestFilter((type, request) => {
|
|
840
|
+
if (type === shaka.net.NetworkingEngine.RequestType.MANIFEST) {
|
|
841
|
+
request.headers["authorization"] = `Bearer ${apiToken}`;
|
|
842
|
+
}
|
|
843
|
+
});
|
|
844
|
+
}
|
|
845
|
+
}
|
|
822
846
|
if (isDRM && playlistId) {
|
|
823
847
|
const onDRMSessionUpdate = () => {
|
|
824
848
|
try {
|
|
@@ -835,7 +859,7 @@ var useShakaPlayer = ({
|
|
|
835
859
|
initDataType: session.initDataType,
|
|
836
860
|
keySystem: session.keySystem || "com.widevine.alpha"
|
|
837
861
|
}));
|
|
838
|
-
storePersistentLicense(playlistId,
|
|
862
|
+
storePersistentLicense(playlistId, playlistSrc.drm?.licenseCacheKey ?? "", sessionsToStore);
|
|
839
863
|
storedPersistentThisLoadRef.current = true;
|
|
840
864
|
}
|
|
841
865
|
} catch (e) {
|
|
@@ -936,7 +960,7 @@ var useShakaPlayer = ({
|
|
|
936
960
|
onError?.(error);
|
|
937
961
|
throw error;
|
|
938
962
|
}
|
|
939
|
-
}, [shakaConfig, drmConfig, src, onError, onPlayerReady, muxConfig, onMuxReady, isRetrying, getManifestUrl]);
|
|
963
|
+
}, [shakaConfig, drmConfig, src, onError, onPlayerReady, muxConfig, onMuxReady, isRetrying, getManifestUrl, apiToken]);
|
|
940
964
|
const initializePlayer = useCallback(async (video) => {
|
|
941
965
|
return initializePlayerInternal(video);
|
|
942
966
|
}, [initializePlayerInternal]);
|
|
@@ -2207,7 +2231,7 @@ var Player = forwardRef(
|
|
|
2207
2231
|
const [isScriptsLoaded, setIsScriptsLoaded] = useState4(false);
|
|
2208
2232
|
const [isInitialLoading, setIsInitialLoading] = useState4(true);
|
|
2209
2233
|
const [bfResetKey, setBfResetKey] = useState4(0);
|
|
2210
|
-
const hasPlaylist = !!src && !!(src.url || src.drm?.widevine?.playlistUrl || src.drm?.playready?.playlistUrl || src.drm?.fairplay?.playlistUrl);
|
|
2234
|
+
const hasPlaylist = !!src && (typeof src === "string" || !!(src.url || src.drm?.widevine?.playlistUrl || src.drm?.playready?.playlistUrl || src.drm?.fairplay?.playlistUrl));
|
|
2211
2235
|
useImperativeHandle(ref, () => videoRef.current, []);
|
|
2212
2236
|
const { playerRef, initializePlayer, loadManifest, destroyPlayer, isRetrying } = useShakaPlayer({
|
|
2213
2237
|
src,
|
|
@@ -2221,7 +2245,8 @@ var Player = forwardRef(
|
|
|
2221
2245
|
publicKey,
|
|
2222
2246
|
mottoToken: auth?.mottoToken,
|
|
2223
2247
|
hasAds: !!imaConfig?.adTagUrl,
|
|
2224
|
-
hasSystem73: !!system73Config?.apiKey
|
|
2248
|
+
hasSystem73: !!system73Config?.apiKey,
|
|
2249
|
+
apiToken: auth?.apiToken
|
|
2225
2250
|
});
|
|
2226
2251
|
const {
|
|
2227
2252
|
initializeMux,
|