cloudinary-video-player 3.1.1 → 3.1.2-edge.1

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/chapters.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Cloudinary Video Player v3.1.1
3
- * Built on 2025-07-21T06:57:46.941Z
2
+ * Cloudinary Video Player v3.1.2-edge.1
3
+ * Built on 2025-07-22T11:12:21.313Z
4
4
  * https://github.com/cloudinary/cloudinary-video-player
5
5
  */
6
6
  "use strict";
@@ -20,6 +20,8 @@ __webpack_require__.r(__webpack_exports__);
20
20
  /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);
21
21
  /* harmony import */ var _chapters_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chapters.scss */ "./plugins/chapters/chapters.scss");
22
22
  /* harmony import */ var _cloudinary_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../cloudinary/common */ "./plugins/cloudinary/common.js");
23
+ /* harmony import */ var _utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/utf8Base64 */ "./utils/utf8Base64.js");
24
+
23
25
 
24
26
 
25
27
 
@@ -81,10 +83,11 @@ const ChaptersPlugin = function () {
81
83
  if (!currentPublicId) {
82
84
  return null;
83
85
  }
84
- const fullUrl = (0,_cloudinary_common__WEBPACK_IMPORTED_MODULE_2__.getCloudinaryUrl)(`${currentPublicId}-chapters.vtt`, (0,_cloudinary_common__WEBPACK_IMPORTED_MODULE_2__.extendCloudinaryConfig)(this.player.cloudinary.cloudinaryConfig(), {
85
- resource_type: 'raw',
86
- version: '1'
87
- }));
86
+ const {
87
+ type: deliveryType
88
+ } = this.player.cloudinary.source().resourceConfig();
89
+ const urlPrefix = (0,_cloudinary_common__WEBPACK_IMPORTED_MODULE_2__.getCloudinaryUrlPrefix)(this.player.cloudinary.cloudinaryConfig());
90
+ const fullUrl = `${urlPrefix}/_applet_/video_service/chapters/${deliveryType}/${(0,_utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__.utf8ToBase64)(currentPublicId)}.vtt`;
88
91
  return `${fullUrl}?t=${Date.now()}`;
89
92
  };
90
93
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Cloudinary Video Player v3.1.1
3
- * Built on 2025-07-21T06:57:27.396Z
2
+ * Cloudinary Video Player v3.1.2-edge.1
3
+ * Built on 2025-07-22T11:12:02.081Z
4
4
  * https://github.com/cloudinary/cloudinary-video-player
5
5
  */
6
- "use strict";(self.cloudinaryVideoPlayerChunkLoading=self.cloudinaryVideoPlayerChunkLoading||[]).push([[625],{9234:(t,e,r)=>{r.d(e,{default:()=>n});var s=r(6673),a=r.n(s),i=r(8033);const o=function(){function t(t,e){return this.player=t,this.options=e,this.player.one("loadedmetadata",this.initializeChapters.bind(this)),this}return t.prototype.src=function(t){this.resetPlugin(),this.options=t,this.player.one("loadedmetadata",this.initializeChapters.bind(this))},t.prototype.detach=function(){this.resetPlugin()},t.prototype.resetPlugin=function(){this.chaptersTrack&&(this.player.$(".vjs-control-bar-chapter-display").remove(),this.player.$(".vjs-chapter-display").remove(),this.player.$$(".vjs-chapter-marker").forEach((t=>t.remove())),this.player.removeRemoteTextTrack(this.chaptersTrack),delete this.chaptersTrack)},t.prototype.getChaptersFileUrlByName=function(){const t=this.player.cloudinary.currentPublicId();if(!t)return null;return`${(0,i.KA)(`${t}-chapters.vtt`,(0,i.lP)(this.player.cloudinary.cloudinaryConfig(),{resource_type:"raw",version:"1"}))}?t=${Date.now()}`},t.prototype.initializeChapters=async function(){const t=!0===this.options?this.getChaptersFileUrlByName():this.options.url;if(t){const e={kind:"chapters",src:t,default:!0},r=this.player.addRemoteTextTrack(e);r.addEventListener("load",(()=>{this.chaptersTrack=r.track,this.setupChaptersDisplays()}))}else if(Object.entries(this.options).length){const t=this.player.addRemoteTextTrack({kind:"chapters",default:!0}),e=this.player.duration();Object.entries(this.options).forEach(((r,s,a)=>{const i=new VTTCue(parseFloat(r[0]),parseFloat(a[s+1]?a[s+1][0]:e),r[1]);t.track.addCue(i)})),this.chaptersTrack=t.track,this.setupChaptersDisplays(),this.player.controlBar.chaptersButton&&this.player.controlBar.chaptersButton.update()}},t.prototype.setupChaptersDisplays=function(){this.setupProgressBarMarkers(),this.setupProgressBarChapter(),this.setupControlBarChapter()},t.prototype.setupControlBarChapter=function(){const t=this.player.$(".vjs-control-bar-chapter-display")||document.createElement("div");t.setAttribute("class","vjs-control-bar-chapter-display");const e=this.player.$(".vjs-control-bar .vjs-spacer");e.innerHTML="",e.classList.add("vjs-control-bar-chapter-wrapper"),e.appendChild(t),this.chaptersTrack.addEventListener("cuechange",(()=>{const e=Array.from(this.chaptersTrack.activeCues);t.innerText=e.length>0?e[0].text:""}))},t.prototype.setupProgressBarMarkers=function(){const t=this.player.duration(),{seekBar:e}=this.player.controlBar.progressControl;Array.from(this.chaptersTrack.cues).forEach((r=>{if(0!==r.startTime){const s=r.startTime/t*100+"%",i=a().dom.createEl("div",void 0,{class:"vjs-chapter-marker",style:`left: ${s}`});e.el().append(i)}}))},t.prototype.setupProgressBarChapter=function(){const t=a().dom.createEl("div",void 0,{class:"vjs-chapter-display",style:`max-width: ${this.player.$(".vjs-vtt-thumbnail-display")?this.player.$(".vjs-vtt-thumbnail-display").style.width:"160px"}`}),e=this.player.getDescendant(["controlBar","progressControl","seekBar","mouseTimeDisplay"]),r=e.getDescendant(["timeTooltip"]);r.el().parentElement.prepend(t);const s=t=>{const e=t*this.player.duration(),r=Array.from(this.chaptersTrack?.cues||[]).find((t=>e>=t.startTime&&e<=t.endTime));return r?r.text:""};r.update=function(e,r,a){Object.getPrototypeOf(this).update.call(this,e,r,a),t.innerText=s(r)},"object"!=typeof this.player.vttThumbnails&&(e.update=function(e,s){const i=s*this.player_.duration(),o=e.width,n=t.clientWidth/2;r.updateTime(e,s,i,(()=>{e.width*s<n?this.el_.style.left=`${n}px`:e.width*s+n>o?this.el_.style.left=e.width-n+"px":this.el_.style.left=e.width*s+"px"})),r.write(a().time.formatTime(i))})},t}(),n=function(t,e){e.addClass("vjs-chapters"),e.chapters=new o(e,t)}}}]);
6
+ "use strict";(self.cloudinaryVideoPlayerChunkLoading=self.cloudinaryVideoPlayerChunkLoading||[]).push([[625],{9234:(t,e,r)=>{r.d(e,{default:()=>p});var s=r(6673),a=r.n(s),i=r(8033),o=r(2415);const n=function(){function t(t,e){return this.player=t,this.options=e,this.player.one("loadedmetadata",this.initializeChapters.bind(this)),this}return t.prototype.src=function(t){this.resetPlugin(),this.options=t,this.player.one("loadedmetadata",this.initializeChapters.bind(this))},t.prototype.detach=function(){this.resetPlugin()},t.prototype.resetPlugin=function(){this.chaptersTrack&&(this.player.$(".vjs-control-bar-chapter-display").remove(),this.player.$(".vjs-chapter-display").remove(),this.player.$$(".vjs-chapter-marker").forEach((t=>t.remove())),this.player.removeRemoteTextTrack(this.chaptersTrack),delete this.chaptersTrack)},t.prototype.getChaptersFileUrlByName=function(){const t=this.player.cloudinary.currentPublicId();if(!t)return null;const{type:e}=this.player.cloudinary.source().resourceConfig();return`${`${(0,i.k$)(this.player.cloudinary.cloudinaryConfig())}/_applet_/video_service/chapters/${e}/${(0,o.G)(t)}.vtt`}?t=${Date.now()}`},t.prototype.initializeChapters=async function(){const t=!0===this.options?this.getChaptersFileUrlByName():this.options.url;if(t){const e={kind:"chapters",src:t,default:!0},r=this.player.addRemoteTextTrack(e);r.addEventListener("load",(()=>{this.chaptersTrack=r.track,this.setupChaptersDisplays()}))}else if(Object.entries(this.options).length){const t=this.player.addRemoteTextTrack({kind:"chapters",default:!0}),e=this.player.duration();Object.entries(this.options).forEach(((r,s,a)=>{const i=new VTTCue(parseFloat(r[0]),parseFloat(a[s+1]?a[s+1][0]:e),r[1]);t.track.addCue(i)})),this.chaptersTrack=t.track,this.setupChaptersDisplays(),this.player.controlBar.chaptersButton&&this.player.controlBar.chaptersButton.update()}},t.prototype.setupChaptersDisplays=function(){this.setupProgressBarMarkers(),this.setupProgressBarChapter(),this.setupControlBarChapter()},t.prototype.setupControlBarChapter=function(){const t=this.player.$(".vjs-control-bar-chapter-display")||document.createElement("div");t.setAttribute("class","vjs-control-bar-chapter-display");const e=this.player.$(".vjs-control-bar .vjs-spacer");e.innerHTML="",e.classList.add("vjs-control-bar-chapter-wrapper"),e.appendChild(t),this.chaptersTrack.addEventListener("cuechange",(()=>{const e=Array.from(this.chaptersTrack.activeCues);t.innerText=e.length>0?e[0].text:""}))},t.prototype.setupProgressBarMarkers=function(){const t=this.player.duration(),{seekBar:e}=this.player.controlBar.progressControl;Array.from(this.chaptersTrack.cues).forEach((r=>{if(0!==r.startTime){const s=r.startTime/t*100+"%",i=a().dom.createEl("div",void 0,{class:"vjs-chapter-marker",style:`left: ${s}`});e.el().append(i)}}))},t.prototype.setupProgressBarChapter=function(){const t=a().dom.createEl("div",void 0,{class:"vjs-chapter-display",style:`max-width: ${this.player.$(".vjs-vtt-thumbnail-display")?this.player.$(".vjs-vtt-thumbnail-display").style.width:"160px"}`}),e=this.player.getDescendant(["controlBar","progressControl","seekBar","mouseTimeDisplay"]),r=e.getDescendant(["timeTooltip"]);r.el().parentElement.prepend(t);const s=t=>{const e=t*this.player.duration(),r=Array.from(this.chaptersTrack?.cues||[]).find((t=>e>=t.startTime&&e<=t.endTime));return r?r.text:""};r.update=function(e,r,a){Object.getPrototypeOf(this).update.call(this,e,r,a),t.innerText=s(r)},"object"!=typeof this.player.vttThumbnails&&(e.update=function(e,s){const i=s*this.player_.duration(),o=e.width,n=t.clientWidth/2;r.updateTime(e,s,i,(()=>{e.width*s<n?this.el_.style.left=`${n}px`:e.width*s+n>o?this.el_.style.left=e.width-n+"px":this.el_.style.left=e.width*s+"px"})),r.write(a().time.formatTime(i))})},t}(),p=function(t,e){e.addClass("vjs-chapters"),e.chapters=new n(e,t)}}}]);
7
7
  //# sourceMappingURL=chapters.min.js.map
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Cloudinary Video Player v3.1.1
3
- * Built on 2025-07-21T06:57:46.941Z
2
+ * Cloudinary Video Player v3.1.2-edge.1
3
+ * Built on 2025-07-22T11:12:21.313Z
4
4
  * https://github.com/cloudinary/cloudinary-video-player
5
5
  */
6
6
  /*!*************************************************************************************************!*\
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Cloudinary Video Player v3.1.1
3
- * Built on 2025-07-21T06:57:46.941Z
2
+ * Cloudinary Video Player v3.1.2-edge.1
3
+ * Built on 2025-07-22T11:12:21.313Z
4
4
  * https://github.com/cloudinary/cloudinary-video-player
5
5
  */
6
6
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -1486,7 +1486,7 @@ class CloudinaryAnalytics {
1486
1486
  }, {
1487
1487
  ...(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default()(this.analyticsOptions) ? this.analyticsOptions : {}),
1488
1488
  videoPlayerType: 'cloudinary video player',
1489
- videoPlayerVersion: "3.1.1"
1489
+ videoPlayerVersion: "3.1.2-edge.1"
1490
1490
  });
1491
1491
  } else if (this.currentVideoMetadata.cloudName !== metadata.cloudName || this.currentVideoMetadata.publicId !== metadata.publicId) {
1492
1492
  this.cloudinaryAnalytics.stopManualTracking();
@@ -1887,7 +1887,7 @@ class CloudinaryContext {
1887
1887
  options.sourceTypes = options.sourceTypes || _this.sourceTypes();
1888
1888
  options.poster = options.poster || posterOptionsForCurrent();
1889
1889
  options.queryParams = Object.assign(options.queryParams || {}, options.allowUsageReport ? {
1890
- _s: `vp-${"3.1.1"}`
1890
+ _s: `vp-${"3.1.2-edge.1"}`
1891
1891
  } : {});
1892
1892
  if (options.sourceTypes.indexOf('audio') > -1) {
1893
1893
  builtSrc = new _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_7__["default"](publicId, options);
@@ -2883,7 +2883,7 @@ const contextMenuContent = player => {
2883
2883
  const isFullscreen = player.isFullscreen();
2884
2884
  const aboutMenuItem = {
2885
2885
  class: 'player-version',
2886
- label: 'Cloudinary Player v' + "3.1.1"
2886
+ label: 'Cloudinary Player v' + "3.1.2-edge.1"
2887
2887
  };
2888
2888
  if (!player.controls()) {
2889
2889
  return [aboutMenuItem];
@@ -3540,7 +3540,9 @@ __webpack_require__.r(__webpack_exports__);
3540
3540
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3541
3541
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3542
3542
  /* harmony export */ });
3543
- /* harmony import */ var plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! plugins/cloudinary/common */ "./plugins/cloudinary/common.js");
3543
+ /* harmony import */ var _cloudinary_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cloudinary/common */ "./plugins/cloudinary/common.js");
3544
+ /* harmony import */ var _utils_utf8Base64__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utf8Base64 */ "./utils/utf8Base64.js");
3545
+
3544
3546
 
3545
3547
  const fallbackFetch = async (url, fallback) => {
3546
3548
  try {
@@ -3570,6 +3572,10 @@ function pacedTranscript(config) {
3570
3572
  };
3571
3573
  const classNames = player.textTrackDisplay.el().classList;
3572
3574
  classNames.add('cld-paced-text-tracks');
3575
+ const getTranscriptionFileUrl = function (urlPrefix, deliveryType, publicId) {
3576
+ let languageCode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
3577
+ return `${urlPrefix}/_applet_/video_service/transcription/${deliveryType}/${languageCode ? `${languageCode}/` : ''}${(0,_utils_utf8Base64__WEBPACK_IMPORTED_MODULE_1__.utf8ToBase64)(publicId)}.transcript`;
3578
+ };
3573
3579
 
3574
3580
  // Load the transcription file
3575
3581
  const initTranscript = async () => {
@@ -3580,13 +3586,15 @@ function pacedTranscript(config) {
3580
3586
  } else {
3581
3587
  // If not, and provided language, try fetching translated transcript, fallback to base transcript
3582
3588
  const source = player.cloudinary.source();
3583
- const basePath = (0,plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__.getCloudinaryUrl)(source.publicId(), (0,plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__.extendCloudinaryConfig)(player.cloudinary.cloudinaryConfig(), {
3584
- resource_type: 'raw'
3585
- }));
3589
+ const sourcePublicId = source.publicId();
3590
+ const sourceDeliveryType = source.resourceConfig().type;
3591
+ const urlPrefix = (0,_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__.getCloudinaryUrlPrefix)(player.cloudinary.cloudinaryConfig());
3592
+ const transcriptionFileUrl = getTranscriptionFileUrl(urlPrefix, sourceDeliveryType, sourcePublicId);
3586
3593
  if (options.srclang) {
3587
- transcriptResponse = await fallbackFetch(`${basePath}.${options.srclang}.transcript`, `${basePath}.transcript`);
3594
+ const transcriptionTranslationFileUrl = getTranscriptionFileUrl(urlPrefix, sourceDeliveryType, sourcePublicId, options.srclang);
3595
+ transcriptResponse = await fallbackFetch(transcriptionTranslationFileUrl, transcriptionFileUrl);
3588
3596
  } else {
3589
- transcriptResponse = await fallbackFetch(`${basePath}.transcript`);
3597
+ transcriptResponse = await fallbackFetch(transcriptionFileUrl);
3590
3598
  }
3591
3599
  }
3592
3600
  if (!transcriptResponse?.ok) return;
@@ -5004,6 +5012,25 @@ function sliceAndUnsetProperties(obj) {
5004
5012
  }
5005
5013
 
5006
5014
 
5015
+ /***/ }),
5016
+
5017
+ /***/ "./utils/utf8Base64.js":
5018
+ /*!*****************************!*\
5019
+ !*** ./utils/utf8Base64.js ***!
5020
+ \*****************************/
5021
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5022
+
5023
+ "use strict";
5024
+ __webpack_require__.r(__webpack_exports__);
5025
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5026
+ /* harmony export */ utf8ToBase64: () => (/* binding */ utf8ToBase64)
5027
+ /* harmony export */ });
5028
+ function utf8ToBase64(str) {
5029
+ const utf8Bytes = new TextEncoder().encode(str);
5030
+ const binaryStr = String.fromCharCode(...utf8Bytes);
5031
+ return btoa(binaryStr);
5032
+ }
5033
+
5007
5034
  /***/ }),
5008
5035
 
5009
5036
  /***/ "./utils/video-retry.js":
@@ -5322,7 +5349,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
5322
5349
  const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_18__.getAnalyticsFromPlayerOptions)(options);
5323
5350
  const analyticsParams = new URLSearchParams(analyticsData).toString();
5324
5351
  const baseParams = new URLSearchParams({
5325
- vpVersion: "3.1.1",
5352
+ vpVersion: "3.1.2-edge.1",
5326
5353
  vpInstanceId: this.getVPInstanceId(),
5327
5354
  cloudName: options.cloudinary.cloudinaryConfig.cloud_name,
5328
5355
  ...internalAnalyticsMetadata
@@ -1,7 +1,7 @@
1
1
  console.warn('[Cloudinary] The "light" video-player is deprecated and will be removed in a future release. The main player is now light by default. Please use that instead.');
2
2
  /*!
3
- * Cloudinary Video Player v3.1.1
4
- * Built on 2025-07-21T06:57:46.941Z
3
+ * Cloudinary Video Player v3.1.2-edge.1
4
+ * Built on 2025-07-22T11:12:21.313Z
5
5
  * https://github.com/cloudinary/cloudinary-video-player
6
6
  */
7
7
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -1487,7 +1487,7 @@ class CloudinaryAnalytics {
1487
1487
  }, {
1488
1488
  ...(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default()(this.analyticsOptions) ? this.analyticsOptions : {}),
1489
1489
  videoPlayerType: 'cloudinary video player',
1490
- videoPlayerVersion: "3.1.1"
1490
+ videoPlayerVersion: "3.1.2-edge.1"
1491
1491
  });
1492
1492
  } else if (this.currentVideoMetadata.cloudName !== metadata.cloudName || this.currentVideoMetadata.publicId !== metadata.publicId) {
1493
1493
  this.cloudinaryAnalytics.stopManualTracking();
@@ -1888,7 +1888,7 @@ class CloudinaryContext {
1888
1888
  options.sourceTypes = options.sourceTypes || _this.sourceTypes();
1889
1889
  options.poster = options.poster || posterOptionsForCurrent();
1890
1890
  options.queryParams = Object.assign(options.queryParams || {}, options.allowUsageReport ? {
1891
- _s: `vp-${"3.1.1"}`
1891
+ _s: `vp-${"3.1.2-edge.1"}`
1892
1892
  } : {});
1893
1893
  if (options.sourceTypes.indexOf('audio') > -1) {
1894
1894
  builtSrc = new _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_7__["default"](publicId, options);
@@ -2884,7 +2884,7 @@ const contextMenuContent = player => {
2884
2884
  const isFullscreen = player.isFullscreen();
2885
2885
  const aboutMenuItem = {
2886
2886
  class: 'player-version',
2887
- label: 'Cloudinary Player v' + "3.1.1"
2887
+ label: 'Cloudinary Player v' + "3.1.2-edge.1"
2888
2888
  };
2889
2889
  if (!player.controls()) {
2890
2890
  return [aboutMenuItem];
@@ -3541,7 +3541,9 @@ __webpack_require__.r(__webpack_exports__);
3541
3541
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3542
3542
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3543
3543
  /* harmony export */ });
3544
- /* harmony import */ var plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! plugins/cloudinary/common */ "./plugins/cloudinary/common.js");
3544
+ /* harmony import */ var _cloudinary_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cloudinary/common */ "./plugins/cloudinary/common.js");
3545
+ /* harmony import */ var _utils_utf8Base64__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utf8Base64 */ "./utils/utf8Base64.js");
3546
+
3545
3547
 
3546
3548
  const fallbackFetch = async (url, fallback) => {
3547
3549
  try {
@@ -3571,6 +3573,10 @@ function pacedTranscript(config) {
3571
3573
  };
3572
3574
  const classNames = player.textTrackDisplay.el().classList;
3573
3575
  classNames.add('cld-paced-text-tracks');
3576
+ const getTranscriptionFileUrl = function (urlPrefix, deliveryType, publicId) {
3577
+ let languageCode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
3578
+ return `${urlPrefix}/_applet_/video_service/transcription/${deliveryType}/${languageCode ? `${languageCode}/` : ''}${(0,_utils_utf8Base64__WEBPACK_IMPORTED_MODULE_1__.utf8ToBase64)(publicId)}.transcript`;
3579
+ };
3574
3580
 
3575
3581
  // Load the transcription file
3576
3582
  const initTranscript = async () => {
@@ -3581,13 +3587,15 @@ function pacedTranscript(config) {
3581
3587
  } else {
3582
3588
  // If not, and provided language, try fetching translated transcript, fallback to base transcript
3583
3589
  const source = player.cloudinary.source();
3584
- const basePath = (0,plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__.getCloudinaryUrl)(source.publicId(), (0,plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__.extendCloudinaryConfig)(player.cloudinary.cloudinaryConfig(), {
3585
- resource_type: 'raw'
3586
- }));
3590
+ const sourcePublicId = source.publicId();
3591
+ const sourceDeliveryType = source.resourceConfig().type;
3592
+ const urlPrefix = (0,_cloudinary_common__WEBPACK_IMPORTED_MODULE_0__.getCloudinaryUrlPrefix)(player.cloudinary.cloudinaryConfig());
3593
+ const transcriptionFileUrl = getTranscriptionFileUrl(urlPrefix, sourceDeliveryType, sourcePublicId);
3587
3594
  if (options.srclang) {
3588
- transcriptResponse = await fallbackFetch(`${basePath}.${options.srclang}.transcript`, `${basePath}.transcript`);
3595
+ const transcriptionTranslationFileUrl = getTranscriptionFileUrl(urlPrefix, sourceDeliveryType, sourcePublicId, options.srclang);
3596
+ transcriptResponse = await fallbackFetch(transcriptionTranslationFileUrl, transcriptionFileUrl);
3589
3597
  } else {
3590
- transcriptResponse = await fallbackFetch(`${basePath}.transcript`);
3598
+ transcriptResponse = await fallbackFetch(transcriptionFileUrl);
3591
3599
  }
3592
3600
  }
3593
3601
  if (!transcriptResponse?.ok) return;
@@ -5005,6 +5013,25 @@ function sliceAndUnsetProperties(obj) {
5005
5013
  }
5006
5014
 
5007
5015
 
5016
+ /***/ }),
5017
+
5018
+ /***/ "./utils/utf8Base64.js":
5019
+ /*!*****************************!*\
5020
+ !*** ./utils/utf8Base64.js ***!
5021
+ \*****************************/
5022
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5023
+
5024
+ "use strict";
5025
+ __webpack_require__.r(__webpack_exports__);
5026
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5027
+ /* harmony export */ utf8ToBase64: () => (/* binding */ utf8ToBase64)
5028
+ /* harmony export */ });
5029
+ function utf8ToBase64(str) {
5030
+ const utf8Bytes = new TextEncoder().encode(str);
5031
+ const binaryStr = String.fromCharCode(...utf8Bytes);
5032
+ return btoa(binaryStr);
5033
+ }
5034
+
5008
5035
  /***/ }),
5009
5036
 
5010
5037
  /***/ "./utils/video-retry.js":
@@ -5323,7 +5350,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
5323
5350
  const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_18__.getAnalyticsFromPlayerOptions)(options);
5324
5351
  const analyticsParams = new URLSearchParams(analyticsData).toString();
5325
5352
  const baseParams = new URLSearchParams({
5326
- vpVersion: "3.1.1",
5353
+ vpVersion: "3.1.2-edge.1",
5327
5354
  vpInstanceId: this.getVPInstanceId(),
5328
5355
  cloudName: options.cloudinary.cloudinaryConfig.cloud_name,
5329
5356
  ...internalAnalyticsMetadata