UNPKG

cloudinary-video-player

Version:
6 lines 16.6 kB
/*! * Cloudinary Video Player v4.0.3 * Built on 2026-06-07T12:23:47.824Z * https://github.com/cloudinary/cloudinary-video-player */ "use strict";(self.cloudinaryVideoPlayerChunkLoading=self.cloudinaryVideoPlayerChunkLoading||[]).push([[76,801],{6801(i,t,e){e.r(t),e.d(t,{createPlayerWithConfig:()=>k,createVideoPlayer:()=>D,default:()=>L});var s=e(6673),o=e.n(s),r=e(1698),n=e(5685),a=e.n(n),h=e(2832),l=e.n(h),d=e(7171),c=e.n(d),u=e(8446),p=e.n(u),v=e(8953),y=e.n(v),j=e(7571),g=e.n(j),_=(e(223),e(818)),f=e(5104),O=e(7668),m=e(3105),S=e(8513),T=e(5381),C=e(8838),A=e(608),I=e(5779),P=e(1104),b=e(918),E=e(5770),R=e(4242),V=e(7311);Object.keys(_.A).forEach(i=>{o().registerPlugin(i,_.A[i])}),(0,C.go)();class w{static all(i){for(var t=arguments.length,e=new Array(t>1?t-1:0),s=1;s<t;s++)e[s-1]=arguments[s];return[...document.querySelectorAll(i)].map(i=>new w(i,...e))}get playerOptions(){return this.options.playerOptions}constructor(i,t,e){this.videoElement=i,this.options=(0,C.DS)(t),this._videojsOptions=this.options.videojsOptions,this.videoElement.classList.add("video-js"),f.A.fontFace(this.videoElement,this.playerOptions.fontFace),"init"===this._videojsOptions.bigPlayButton&&(this.videoElement.classList.add("vjs-big-play-button-init-only"),this._videojsOptions.bigPlayButton=!0),this.videojs=o()(this.videoElement,this._videojsOptions),(0,m.A)(this,this.videojs),this._isPlayerConfigValid=!0,this.playerOptions.debug&&(0,I.I6)(this.options).then(i=>{if(!i)return this._isPlayerConfigValid=!1,void this.videojs.error("invalid player configuration")}),this._videojsOptions.muted&&this.videojs.volume(.4),this.playerOptions.fluid&&this.fluid(this.playerOptions.fluid),this._setCssClasses(),this._initPlugins(),this._initJumpButtons(),this._initPictureInPicture(),this._initBigPauseButton(),this._setVideoJsListeners(e)}getVPInstanceId(){return this.vpInstanceId||(this.vpInstanceId=(0,r.A)()),this.vpInstanceId}_sendInternalAnalytics(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=Object.assign({},this.playerOptions,this.options.videojsOptions,i);if(t.sourceOptions?.allowUsageReport)try{const i=t._internalAnalyticsMetadata??{},e=(0,b.o)(t),s=new URLSearchParams(e).toString(),o=new URLSearchParams({vpVersion:"4.0.3",vpInstanceId:this.getVPInstanceId(),cloudName:t.cloudinary.cloud_name,...i}).toString();fetch(`https://analytics-api-s.cloudinary.com/video_player_source?${s}&${o}`)}catch(i){console.warn(i)}}_resetReTryVideoState=()=>{this.reTryVideoStateRetriesCount=0,this.videojs.clearTimeout(this.reTryVideoStateTimeoutId)};_handleRefresh=()=>{this.videojs.error(null);const i=this.currentPublicId()||this.currentSourceUrl();i&&this.source(i,this.playerOptions.sourceOptions||{})};_setVideoJsListeners(i){this.videojs.on(P.f.ERROR,()=>{const i=this.videojs.error();if(i){const t=this._isPlayerConfigValid&&this.videojs.cloudinary.currentSourceType();[3===i.code&&o().browser.IS_SAFARI,4===i.code].includes(!0)&&[P.x.AUDIO,P.x.VIDEO].includes(t)?this.isLiveStream?(this.videojs.error({code:E.bo.CUSTOM,message:"Live Stream not started"}),this.reloadVideoUntilAvailable()):(this.videojs.error(null),f.A.handleCldError(this,this.playerOptions)):this._resetReTryVideoState()}}),this.videojs.tech_.on(P.f.RETRY_PLAYLIST,()=>{l()(this.videojs,"hls.stats.mediaRequestsErrored",0)>0&&(this._resetReTryVideoState(),f.A.handleCldError(this,this.playerOptions))}),this.videojs.on(P.f.PLAY,this._resetReTryVideoState),this.videojs.on(P.f.CAN_PLAY_THROUGH,this._resetReTryVideoState),this.videojs.on(P.f.CLD_SOURCE_CHANGED,this._onSourceChange.bind(this)),this.videojs.on(P.f.REFRESH,this._handleRefresh.bind(this)),this.videojs.ready(()=>{this._onReady(),this._applyVolumeBarAriaLiveFix(),i&&i(this)})}_initPlugins(){this._initIma(),this._initAutoplay(),this._initContextMenu(),this._initPerSrcBehaviors(),this._initCloudinary(),this._initAnalytics(),this._initCloudinaryAnalytics(),this._initFloatingPlayer(),this._initVisualSearch(),this._initShare(),this._initColors(),this._initTextTracks(),this._initHighlightsGraph(),this._initSeekThumbs(),this._initChapters(),this._initInteractionAreas(),this._initSourceSwitcher()}_isFullScreen(){return this.videojs.player().isFullscreen()}_initIma(){this.playerOptions.ads&&0!==Object.keys(this.playerOptions.ads).length&&_.A.imaPlugin(this.videojs,this.playerOptions)}setTextTracks(i){if(this.textTracksManager.removeAllTextTracks(),i){const t=Object.keys(i),e=[];for(const s of t)if("options"!==s){const t=Array.isArray(i[s])?i[s]:[i[s]];for(const i of t)e.push({...i,kind:s,label:i.label,srclang:i.language,default:!!i.default,src:i.url})}this.textTracksManager.addTextTracks(e),i.options&&this.videojs.styledTextTracks&&this.videojs.styledTextTracks(i.options)}}_initSeekThumbs(){this.playerOptions.seekThumbnails&&this.videojs.on(P.f.CLD_SOURCE_CHANGED,(i,t)=>{let{source:e}=t;if(!e||e.getType()===P.x.AUDIO||"live"===e.resourceConfig().type||(0,E.iT)(e.publicId())||this.videojs.activePlugins_&&this.videojs.activePlugins_.vr)return;const s=e.publicId(),o=(0,E.hS)(Object.assign({},e.transformation())),r=[...Array.isArray(o)?o:[o],{flags:["sprite"]}],n=e.config().url(`${s}.vtt`,{transformation:r}).replace(/\.json$/,""),a=(0,V.N)(n,e.queryParams());p()(this.videojs.vttThumbnails)?this.videojs.vttThumbnails({src:a}):this.videojs.vttThumbnails.src(a)})}_initHighlightsGraph(){this.playerOptions.aiHighlightsGraph&&this.videojs.on(P.f.CLD_SOURCE_CHANGED,(i,t)=>{let{source:e}=t;if(!e||e.getType()===P.x.AUDIO||(0,E.iT)(e.publicId()))return;const s=e.publicId(),o=c()(e.transformation(),["start_offset","end_offset","duration"]),r=Object.assign({},o);r.effect="preview",r.flags=r.flags||[],r.flags.push("getinfo");const n=e.config().url(`${s}`,{transformation:r}).replace(/\.json$/,""),a=(0,V.N)(n,e.queryParams());p()(this.videojs.aiHighlightsGraph)?this.videojs.aiHighlightsGraph({src:a}):this.videojs.aiHighlightsGraph.src(a)})}_initChapters(){!this.playerOptions.chaptersButton&&this.videojs.controlBar&&this.videojs.controlBar.removeChild("chaptersButton"),this.videojs.on(P.f.CLD_SOURCE_CHANGED,(i,t)=>{let{source:e}=t;a()(e?._chapters)&&!0!==e?._chapters||!this.videojs.chapters?this.videojs.chapters?.resetPlugin&&this.videojs.chapters.resetPlugin():p()(this.videojs.chapters)?this.videojs.chapters(e._chapters):this.videojs.chapters.src(e._chapters)})}_initInteractionAreas(){this.videojs.on(P.f.READY,async()=>{this.options.videojsOptions.interactionDisplay&&this.videojs.interactionAreas&&this.videojs.interactionAreas(this,this.playerOptions,this._videojsOptions)})}_initVisualSearch(){this.videojs.on(P.f.CLD_SOURCE_CHANGED,(i,t)=>{let{source:e}=t;e?._visualSearch&&this.videojs.visualSearch?p()(this.videojs.visualSearch)?this.videojs.visualSearch(e._visualSearch):this.videojs.visualSearch.createSearchUI(e._visualSearch):!e?._visualSearch&&this.videojs.visualSearch?.clearUI&&this.videojs.visualSearch.clearUI()})}_initShare(){this.videojs.on(P.f.CLD_SOURCE_CHANGED,(i,t)=>{let{source:e}=t;this.videojs.share&&(e?._download&&p()(this.videojs.share)&&this.videojs.share({download:!0}),p()(this.videojs.share)||(e?._download?this.videojs.share.addDownloadButton?.():this.videojs.share.removeDownloadButton?.()))})}_initColors(){this.playerOptions.colors&&this.videojs.colors({colors:this.playerOptions.colors})}_initTextTracks(){this.textTracksManager=this.videojs.textTracksManager(),this.videojs.on(P.f.CLD_SOURCE_CHANGED,(i,t)=>{let{source:e}=t;e?._textTracks&&this.setTextTracks(e._textTracks)})}_initPerSrcBehaviors(){this.videojs.perSourceBehaviors&&this.videojs.perSourceBehaviors()}_initJumpButtons(){!this.playerOptions.showJumpControls&&this.videojs.controlBar&&(this.videojs.controlBar.removeChild("JumpForwardButton"),this.videojs.controlBar.removeChild("JumpBackButton"))}_initPictureInPicture(){!this.playerOptions.pictureInPictureToggle&&this.videojs.controlBar&&this.videojs.controlBar.removeChild("pictureInPictureToggle")}_initBigPauseButton(){(o().browser.IS_IOS||o().browser.IS_ANDROID)&&this.videojs.addChild("BigPauseButton")}_initCloudinary(){const i=this.playerOptions.cloudinary;i.chainTarget=this,!1!==i.secure&&(0,E.lP)(i,{secure:!0});const t={cloudinaryConfig:i,...this.playerOptions.sourceOptions};this.videojs.cloudinary(t)}_initAnalytics(){const i=this.playerOptions.analytics;if(window.gtag||!i){if(i){const t="object"==typeof i?i:{};this.videojs.analytics(t)}}else console.error("Google Analytics script (gtag) is missing.")}_initCloudinaryAnalytics(){if(!!this.playerOptions.cloudinaryAnalytics){this.videojs.videoElement=this.videoElement;const i=y()(this.playerOptions.cloudinaryAnalytics)?this.playerOptions.cloudinaryAnalytics:{};this.videojs.cloudinaryAnalytics(i)}}_initSourceSwitcher(){if(this.sourceSwitcher=this.videojs.sourceSwitcher(),this.videojs.on(P.f.CLD_SOURCE_CHANGED,(i,t)=>{let{source:e}=t;const s=e.videoSources?.(),o=!!Array.isArray(s)&&!!s.length;if(this.videojs.controlBar){const i=o?"show":"hide",t=this.videojs.controlBar.getChild("sourceSwitcherButton");t&&"function"==typeof t?.[i]&&t[i]()}if(o){const i=s.findIndex(i=>{let{publicId:t}=i;return t===e.publicId()});this.sourceSwitcher.reInit({sources:s,selectedIndex:-1===i?0:i,onSourceChange:i=>{let{publicId:t,...e}=i;return this.source(t,{...e,videoSources:s})}})}}),Array.isArray(this.playerOptions.sourceOptions?.videoSources)&&this.playerOptions.sourceOptions?.videoSources.length){const{publicId:i,label:t,...e}=this.playerOptions.sourceOptions.videoSources[0];this.source(i,{...e,videoSources:this.playerOptions.sourceOptions.videoSources})}}reTryVideoStateUntilAvailable(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5e3;if("number"!=typeof this.reTryVideoStateRetriesCount&&(this.reTryVideoStateRetriesCount=0),(0,R.h)(this.videojs.readyState()))this.reTryVideoStateRetriesCount=0;else if(this.reTryVideoStateRetriesCount<i)this.reTryVideoStateRetriesCount++,this.reTryVideoStateTimeoutId=this.videojs.setTimeout(()=>this.reTryVideoStateUntilAvailable(i,t),t);else{let i=new Error("Video is not ready please try later");this.videojs.trigger("error",i)}}_resetReloadVideo=()=>{this.reloadVideoRetriesCount=0,this.videojs.clearTimeout(this.reloadVideoTimeoutId)};reloadVideoUntilAvailable(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5e3;"number"!=typeof this.reloadVideoRetriesCount&&(this.reloadVideoRetriesCount=0),this.reloadVideoRetriesCount<i?(this.reloadVideoRetriesCount++,this.reloadVideoTimeoutId=this.videojs.setTimeout(()=>{const e=this.currentSourceUrl();(0,R.O)(e,this.isLiveStream?"live":"default").then(()=>this.source(e)).catch(()=>this.reloadVideoUntilAvailable(i,t))},t)):this.videojs.trigger("error",new Error("Sorry, we could not load your video"))}_initAutoplay(){"on-scroll"===this.playerOptions.autoplayMode&&this.videojs.autoplayOnScroll()}_initContextMenu(){this.playerOptions.hideContextMenu||this.videojs.contextMenu(O.A.contextMenu)}_initFloatingPlayer(){this.playerOptions.floatingWhenNotVisible!==A.rT.NONE&&this.videojs.floatingPlayer({floatTo:this.playerOptions.floatingWhenNotVisible})}_setCssClasses(){this.videojs.addClass(f.A.CLASS_PREFIX),this.videojs.addClass(f.A.playerClassPrefix(this.videojs)),f.A.setSkinClassPrefix(this.videojs,f.A.skinClassPrefix(this.videojs))}_onReady(){this._setExtendedEvents();const i=this.playerOptions.sourceOptions.source||this.playerOptions.sourceOptions.publicId;if(i){const t=Object.assign({},this.playerOptions.sourceOptions);this.source(i,t)}}_applyVolumeBarAriaLiveFix(){const i=this.videojs.$(".vjs-volume-bar");i&&i.removeAttribute("aria-live")}_onSourceChange(i,t){let{source:e,sourceOptions:s}=t;this._sendInternalAnalytics({...s&&{sourceOptions:s}}),this.isLiveStream="live"===e?.resourceConfig()?.type}_setExtendedEvents(){const i=[];this.playerOptions.playedEventPercents&&i.push({type:P.f.PERCENTS_PLAYED,percents:this.playerOptions.playedEventPercents}),this.playerOptions.playedEventTimes&&i.push({type:P.f.TIME_PLAYED,times:this.playerOptions.playedEventTimes});const t=new S.A(this.videojs,{events:i});Object.keys(t.events).forEach(i=>{t.on(i,(t,e)=>{this.videojs.trigger({type:i,eventData:e})})})}cloudinaryConfig(i){return this.videojs.cloudinary.cloudinaryConfig(i)}currentPublicId(){return this.videojs.cloudinary.currentPublicId()}currentSourceUrl(){return this.videojs.currentSource().src}currentPoster(){return this.videojs.cloudinary.currentPoster()}source(i){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(({publicId:i,options:t}=(0,E.a5)(i,t)),!this._isPlayerConfigValid)return;if(this.playerOptions.debug&&(t.debug=!0,(0,I.Is)(t).then(i=>{i||this.videojs.error("invalid source configuration")})),i instanceof T.A)return this.videojs.cloudinary.source(i,t);t={...this.playerOptions.sourceOptions||{},...t},t.shoppable&&this.videojs.shoppable&&this.videojs.shoppable(this.videojs,t),this._resetReloadVideo(),this._resetReTryVideoState();const e=this.videojs.options_.maxTries||3,s=this.videojs.options_.videoTimeout||55e3;return this.reTryVideoStateUntilAvailable(e,s),this.videojs.cloudinary.source(i,t)}posterOptions(i){return this.videojs.cloudinary.posterOptions(i)}skin(i){return void 0!==i&&g()(i)&&f.A.setSkinClassPrefix(this.videojs,i),f.A.skinClassPrefix(this.videojs)}playlist(i){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.playerOptions.playlistWidget={...this.playerOptions.playlistWidget||{show:!1},playlist:!0},t=Object.assign({},t,{playlistWidget:this.playerOptions.playlistWidget}),this.videojs.one(P.f.READY,async()=>{(await this.videojs.playlist(t))(i,t)}),this.videojs.cloudinary.playlist?this.videojs.cloudinary.playlist(i,t):this}playlistByTag(i){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.playerOptions.playlistWidget={...this.playerOptions.playlistWidget||{show:!1},playlistByTag:!0},t=Object.assign({},t,{playlistWidget:this.playerOptions.playlistWidget}),new Promise(e=>{this.videojs.one(P.f.READY,async()=>{(await this.videojs.playlist(t))(await this.sourcesByTag(i,t),t),e(this)})})}sourcesByTag(i){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.videojs.cloudinary.sourcesByTag(i,t)}fluid(i){return void 0===i?this.videojs.fluid():(i?this.videojs.addClass(A.gi):this.videojs.removeClass(A.gi),this.videojs.fluid(i),this.videojs.trigger(P.f.FLUID,i),this)}play(){return this.playWasCalled=!0,this.videojs.play(),this}stop(){return this.pause(),this.currentTime(0),this}playPrevious(){return this.playlist().playPrevious(),this}playNext(){return this.playlist().playNext(),this}transformation(i){return this.videojs.cloudinary.transformation(i)}sourceTypes(i){return this.videojs.cloudinary.sourceTypes(i)}sourceTransformation(i){return this.videojs.cloudinary.sourceTransformation(i)}autoShowRecommendations(i){return this.videojs.cloudinary.autoShowRecommendations(i)}duration(){return this.videojs.duration()}height(i){return i?(this.videojs.height(i),this):this.videojs.height()}width(i){return i?(this.videojs.width(i),this):this.videojs.width()}volume(i){return i?(this.videojs.volume(i),this):this.videojs.volume()}mute(){return this.isMuted()||this.videojs.muted(!0),this}unmute(){return this.isMuted()&&this.videojs.muted(!1),this}isMuted(){return this.videojs.muted()}pause(){return this.videojs.pause(),this}currentTime(i){return i||0===i?(this.videojs.currentTime(i),this):this.videojs.currentTime()}maximize(){return this.isMaximized()||this.videojs.requestFullscreen(),this}exitMaximize(){return this.isMaximized()&&this.videojs.exitFullscreen(),this}isMaximized(){return this.videojs.isFullscreen()}dispose(){this.videojs.dispose()}controls(i){return void 0===i?this.videojs.controls():(this.videojs.controls(i),this)}ima(){return{playAd:this.videojs.ima.playAd}}loop(i){return void 0===i?this.videojs.loop():(this.videojs.loop(i),this)}el(){return this.videojs.el()}}const x=i=>o().obj.merge({},O.A,i),B=function(i){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const e=(0,C.iG)(i);return{videoElement:e,options:(0,C.Wi)(e,t)}},D=function(i){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=arguments.length>2?arguments[2]:void 0;const{videoElement:s,options:o}=B(i,t);return o.profile&&console.warn("Profile option requires async initialization. Use cloudinary.player() instead of cloudinary.videoPlayer()"),new w(s,x(o),e)},k=(i,t,e)=>{const{videoElement:s,options:o}=B(i,t);return new w(s,x(o),e)},L=w}}]);