@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.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.77";
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
- let manifestUrl = src.url;
634
- const isDRM = Boolean(src.drm);
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() && src.drm.fairplay?.certificateUrl) {
638
- manifestUrl = src.drm.fairplay.playlistUrl;
639
- } else if (isPlayReady && src.drm.playready?.licenseUrl) {
640
- manifestUrl = src.drm.playready.playlistUrl;
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 = src.drm?.widevine?.playlistUrl || "";
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 = src.id;
689
- const isDRM = Boolean(src.drm);
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, src.drm.licenseCacheKey ?? "");
715
+ storedSessionsMetadata = retrievePersistentLicense(playlistId, playlistSrc.drm?.licenseCacheKey ?? "");
702
716
  }
703
717
  if (isDRM) {
704
718
  const drmConfig2 = {
705
719
  servers: {
706
- "com.widevine.alpha": src.drm.widevine?.licenseUrl,
707
- "com.microsoft.playready": src.drm.playready?.licenseUrl,
708
- "com.apple.fps": src.drm.fairplay?.licenseUrl
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 platforms recommended PlayReady CDM if needed
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
- ...src.drm.fairplay && {
728
+ ...playlistSrc.drm?.fairplay && {
715
729
  advanced: {
716
730
  "com.apple.fps": {
717
- serverCertificateUri: src.drm.fairplay.certificateUrl
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, src.drm.licenseCacheKey ?? "", sessionsToStore);
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,