Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@


---

# v3 to v4 Changes - Lazy player by default

This release should be backwards-compatible for most player usages -
typical `cloudinary.videoPlayer(...)` / `cloudinary.player(...)` calls
keep working as-is, and existing CDN `<script>` tags pointing at
`dist/cld-video-player.min.js` will load the same full player.

- Default UMD bundle is now `dist/player.min.js` (~4 KB lazy shell); the full
~140 KB player loads on demand. `dist/cld-video-player.min.js` is kept as
an alias of `dist/player-full.min.js`, so existing CDN `<script>` tags keep
working unchanged.
- `cloudinary.videoPlayer(...)` still returns synchronously, but the return
value is now a thenable proxy that buffers calls until the real player
loads. To keep the v3 sync contract (immediate `VideoPlayer` instance,
sync `ready`), opt into the full bundle: `import 'cloudinary-video-player/full'`
on NPM, or `dist/player-full.min.js` (or the existing
`dist/cld-video-player.min.js` alias) on the CDN.

---

## [3.14.1](https://github.com/cloudinary/cloudinary-video-player/compare/v3.14.0...v3.14.1) (2026-04-26)


Expand Down
16 changes: 3 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,17 @@ This README includes basic information for installation and getting started. Vie

```js
import cloudinary from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
// import required plugins like that:
// import 'cloudinary-video-player/chapters';
// import 'cloudinary-video-player/playlist';
```

* Note - import `/all` to get all available plugins in a single import:

```js
import cloudinary from 'cloudinary-video-player/all';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';
```

### CDN

Cloudinary Video Player can also be included directly from the [jsDelivr CDN](https://www.jsdelivr.com/), optional plugins will be lazy-loaded on demand:

```html
<link href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css" rel="stylesheet">

<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js" type="text/javascript"></script>
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js" type="text/javascript"></script>
```


Expand Down
8 changes: 4 additions & 4 deletions docs/360.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@
<meta charset="utf-8">
<title>Cloudinary Video Player</title>
<link href="https://res.cloudinary.com/cloudinary-marketing/image/upload/f_auto,q_auto/c_scale,w_32/v1597183771/creative_staging/cloudinary_internal/Website/Brand%20Updates/Favicon/cloudinary_web_favicon_192x192.png" rel="icon" type="image/png">
<script type="text/javascript" src="./scripts.js"></script>
<script type="text/javascript" src="./scripts.js?full"></script>

<!--
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

<script>
// Delayed, load after cld-video-player.js
// Delayed, load after player.js
loadScript('https://unpkg.com/videojs-vr@2.0.0/dist/videojs-vr.js');
</script>

Expand Down
4 changes: 2 additions & 2 deletions docs/_template.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

Expand Down
6 changes: 3 additions & 3 deletions docs/adaptive-streaming.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>
-->

<script type="text/javascript" src="./scripts.js"></script>
<script type="text/javascript" src="./scripts.js?full"></script>
<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0.7.20/src/ua-parser.min.js"></script>

<script>
Expand Down
4 changes: 2 additions & 2 deletions docs/analytics.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>
-->

<script type="text/javascript" src="./scripts.js"></script>
Expand Down
4 changes: 2 additions & 2 deletions docs/api.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

Expand Down
4 changes: 2 additions & 2 deletions docs/audio.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>
-->

<script type="text/javascript" src="./scripts.js"></script>
Expand Down
4 changes: 2 additions & 2 deletions docs/autoplay-on-scroll.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

Expand Down
6 changes: 3 additions & 3 deletions docs/breakpoints.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

<script type="text/javascript" src="./scripts.js"></script>
<script type="text/javascript" src="./scripts.js?full"></script>

<style>
.video-url {
Expand Down
4 changes: 2 additions & 2 deletions docs/chapters.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

Expand Down
4 changes: 2 additions & 2 deletions docs/cloudinary-analytics.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>
-->

<script type="text/javascript" src="./scripts.js"></script>
Expand Down
6 changes: 3 additions & 3 deletions docs/codec-formats.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>
-->

<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0.7.20/src/ua-parser.min.js"></script>

<script type="text/javascript" src="./scripts.js"></script>
<script type="text/javascript" src="./scripts.js?full"></script>

<script type="text/javascript">

Expand Down
4 changes: 2 additions & 2 deletions docs/colors.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

Expand Down
6 changes: 3 additions & 3 deletions docs/components.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>
-->

<script type="text/javascript" src="./scripts.js"></script>
<script type="text/javascript" src="./scripts.js?full"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

Expand Down
6 changes: 3 additions & 3 deletions docs/custom-cld-errors.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

<script type="text/javascript" src="./scripts.js"></script>
<script type="text/javascript" src="./scripts.js?full"></script>

<script type="text/javascript">

Expand Down
4 changes: 2 additions & 2 deletions docs/debug.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

Expand Down
4 changes: 2 additions & 2 deletions docs/embedded-iframe.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
We're loading scripts & style dynamically for development/testing.
Real-world usage would look like this:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/cld-video-player.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.css">
<script src="https://cdn.jsdelivr.net/npm/cloudinary-video-player/dist/player.min.js"></script>

-->

Expand Down
6 changes: 3 additions & 3 deletions docs/es-modules/360.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ <h3 class="mb-4">360 Videos</h3>

<script type="module">

import { videoPlayer } from 'cloudinary-video-player';
import { videoPlayer } from 'cloudinary-video-player/full';
import 'https://unpkg.com/videojs-vr@2.0.0/dist/videojs-vr.js';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = cloudinary.videoPlayer('player', {
const player = videoPlayer('player', {
cloudName: 'demo',
publicId: 'video-player/Golden-Gate-Bridge',
sourceTypes: ['mp4']
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/_template.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ <h3 class="mb-4">TITLE</h3>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player', {
cloudName: 'demo',
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/adaptive-streaming.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ <h4>HLS with highQuality</h4>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const cldConfig = {
cloud_name: 'demo',
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/all.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ <h3 class="mb-4"><code>/all</code> build</h3>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player/all';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player', {
cloudName: 'demo',
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/analytics.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ <h3 class="mb-4">Analytics</h3>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player', {
cloudName: 'demo',
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/api.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ <h3 class="mb-4">API and Events</h3>
import { videoPlayer } from 'cloudinary-video-player';


import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player', {
cloudName: 'demo'
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/aspect-ratio-crop.html
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ <h3 class="mt-4">Example Code:</h3>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player1 = videoPlayer('player-1', { cloudName: 'demo' });
player1.source({
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/audio.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ <h3 class="mb-4 mt-4">Audio Player - with transformations</h3>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player', {
cloudName: 'demo'
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/autoplay-on-scroll.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ <h3 class="mb-4">Autoplay on scroll</h3>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player', {
cloudName: 'demo'
Expand Down
4 changes: 2 additions & 2 deletions docs/es-modules/breakpoints.html
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ <h3 class="mt-4">Configuration Options</h3>
</div>

<script type="module">
import videoPlayer from 'cloudinary-video-player/videoPlayer';
import 'cloudinary-video-player/cld-video-player.min.css';
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player-with-breakpoints', {
cloudName: 'demo',
Expand Down
2 changes: 1 addition & 1 deletion docs/es-modules/chapters.html
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ <h4 class="mb-4">From an automatically taken VTT file</h4>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const playerVTT = videoPlayer('player-vtt', {
cloudName: 'demo',
Expand Down
4 changes: 1 addition & 3 deletions docs/es-modules/cloudinary-analytics.html
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,7 @@ <h3 class="mb-4">Cloudinary analytics with custom data - function</h3>

<script type="module">
import { videoPlayer } from 'cloudinary-video-player';
import 'cloudinary-video-player/dash';
import 'cloudinary-video-player/adaptive-streaming';
import 'cloudinary-video-player/cld-video-player.min.css';
import 'cloudinary-video-player/player.min.css';

const player = videoPlayer('player', {
cloudName: 'demo',
Expand Down
Loading
Loading