From 681111ceb2c918cb0b87fd051001b8464dbd5335 Mon Sep 17 00:00:00 2001 From: Mahlangu <69122375+unclebinary1001@users.noreply.github.com> Date: Fri, 15 Nov 2024 14:55:26 -0600 Subject: [PATCH] refactor: update vjs beforeRequest to onRequest (#3945) * refactor: update vjs onRequst to onRequest * fix(js): update vjs to use the new onrequest hook for manipulating request uri --------- Co-authored-by: Gabe Kangas --- web/components/video/VideoJS/VideoJS.tsx | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/web/components/video/VideoJS/VideoJS.tsx b/web/components/video/VideoJS/VideoJS.tsx index d40347f7d..5177bf581 100644 --- a/web/components/video/VideoJS/VideoJS.tsx +++ b/web/components/video/VideoJS/VideoJS.tsx @@ -30,22 +30,21 @@ export const VideoJS: FC = ({ options, onReady }) => { player.src(options.sources); } - // Add a cachebuster param to playlist URLs. - if ( - (videojs.getPlayer(videoRef.current).tech({ IWillNotUseThisInPlugins: true }) as any)?.vhs - ) { + videojs.getPlayer(videoRef.current).on('xhr-hooks-ready', () => { + const cachebusterRequestHook = o => { + let { uri } = o; + if (o.uri.match('m3u8')) { + const cachebuster = Math.random().toString(16).slice(2, 8); + uri = `${o.uri}?cachebust=${cachebuster}`; + } + return { + uri, + }; + }; ( videojs.getPlayer(videoRef.current).tech({ IWillNotUseThisInPlugins: true }) as any - ).vhs.xhr.beforeRequest = o => { - if (o.uri.match('m3u8')) { - const cachebuster = Math.random().toString(16).substr(2, 8); - // eslint-disable-next-line no-param-reassign - o.uri = `${o.uri}?cachebust=${cachebuster}`; - } - - return o; - }; - } + )?.vhs.xhr.onRequest(cachebusterRequestHook); + }); }, [options, videoRef]); return (