Yandex Cloud
Search
Contact UsTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Cloud Video
    • Overview
    • Control
      • Overview
        • Getting started
        • Player initialization parameters
        • Player methods
        • Player events
      • iOS
    • Troubleshooting
    • Browser autoplay policy
  • Access management
  • Pricing policy
  • Audit Trails events
  • Release notes

In this article:

  • Event subscription format
  • Initialization events
  • Playback events
  • Time and position events
  • Audio events
  • Error events
  • Ad events
  • Display events
  1. Video Player
  2. SDK
  3. IFrame
  4. Player events

Player events

Written by
Yandex Cloud
Updated at January 13, 2026
  • Event subscription format
  • Initialization events
  • Playback events
  • Time and position events
  • Audio events
  • Error events
  • Ad events
  • Display events

You can use postMessage in the IFrame SDK to subscribe to Cloud Video Player events. The iframe sends events to the parent window.

Event subscription formatEvent subscription format

The message handler is used to receive events from the player.

window.addEventListener('message', function(event) {
    if (event.data && event.data.event) {
        // Event handling
        console.log('Player event:', event.data.event, event.data);
    }
});

Initialization eventsInitialization events

initedinited

The player is initialized and ready for use.

Event parameters:

  • vsid (string): Unique player session ID.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'inited') {
        console.log('Player initialized, vsid:', event.data.vsid);
    }
});

resourcesIdleresourcesIdle

Player resources are loaded and the player is idle.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'resourcesIdle') {
        console.log('Player resources loaded');
    }
});

contentImpressioncontentImpression

The content is displayed to the user (impression).

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'contentImpression') {
        console.log('Content displayed');
    }
});

Playback eventsPlayback events

startedstarted

Video playback started (first play after loading content).

Event parameters:

  • time (number): Current playback time, in seconds.
  • duration (number): Video duration, in seconds.
  • title (string): Video title. This is an optional parameter.
  • description (string): Video description. This is an optional parameter.
  • contentId (string): Content ID. This is an optional parameter.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'started') {
        console.log('Playback started');
        console.log('Time:', event.data.time);
        console.log('Duration:', event.data.duration);
        console.log('Title:', event.data.title);
    }
});

resumedresumed

Playback resumed after pause.

Event parameters:

  • time (number): Current playback time, in seconds.
  • duration (number): Video duration, in seconds.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'resumed') {
        console.log('Playback resumed at', event.data.time, 'seconds');
    }
});

pausedpaused

Playback paused.

Event parameters:

  • time (number): Current playback time, in seconds.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'paused') {
        console.log('Playback paused at', event.data.time, 'seconds');
    }
});

endedended

Video playback ended.

Event parameters:

  • time (number): Playback end time, in seconds.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'ended') {
        console.log('Playback ended');
    }
});

Time and position eventsTime and position events

timeupdatetimeupdate

Changing the current playback time. This event is generated regularly during playback.

Event parameters:

  • time (number): Current playback time, in seconds.
  • duration (number): Video duration, in seconds.
  • watchedTime (number): Total watch time, in seconds.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'timeupdate') {
        console.log('Current time:', event.data.time);
        console.log('Duration:', event.data.duration);
        console.log('Watched:', event.data.watchedTime);
    }
});

durationchangedurationchange

Changing the video duration.

Event parameters:

  • duration (number): Updated video duration, in seconds.

This event may occur:

  • When you change content.
  • Periodically for live streams, as the duration keeps increasing.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'durationchange') {
        console.log('Duration changed:', event.data.duration);
    }
});

rewoundrewound

User changed the video playback position.

Event parameters:

  • time (number): Updated playback time, in seconds.
  • previousTime (number): Previous playback time, in seconds.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'rewound') {
        console.log('Playback position changed from', event.data.previousTime, 'to', event.data.time);
    }
});

Audio eventsAudio events

volumechangevolumechange

Changing the volume and muted status.

Event parameters:

  • volume (number): Volume level from 0 to 1.
  • muted (boolean): Sound muted status. If true, sound is off; if false, sound is on.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'volumechange') {
        console.log('Volume:', event.data.volume);
        console.log('Muted:', event.data.muted);
    }
});

Error eventsError events

errorerror

A playback error occurred.

Event parameters:

  • time (number): Time when the error occurred, in seconds.
  • code (string): Error code.

Possible error codes:

  • '0': Unknown error.
  • '1': Error loading video.
  • '2': Network error.
  • '3': Decoding error.
  • '4': Video not supported.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'error') {
        console.error('Playback error');
        console.error('Error code:', event.data.code);
        console.error('Time:', event.data.time);
    }
});

Ad eventsAd events

adShownadShown

Ad playback started.

Event parameters:

  • time (number): Ad start time, in seconds.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'adShown') {
        console.log('Ad playback started');
    }
});

adEndadEnd

Ad playback ended.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'adEnd') {
        console.log('Ad playback ended');
    }
});

adPodStartadPodStart

Ad pod playback started.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'adPodStart') {
        console.log('Ad pod playback started');
    }
});

Display eventsDisplay events

sizeChangesizeChange

The video was resized.

Event parameters:

  • videoWidth (number): Video width, in pixels.
  • videoHeight (number): Video height, in pixels.
  • isAd (boolean): Indicates whether the current video is an ad.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'sizeChange') {
        console.log('Video size:', event.data.videoWidth, 'x', event.data.videoHeight);
        console.log('This video is an ad:', event.data.isAd);
    }
});

fullscreenchangefullscreenchange

Changing the fullscreen mode state.

Event parameters:

  • isFullscreen (boolean): Fullscreen mode status, true for enabled and false for disabled.

Handling example:

window.addEventListener('message', function(event) {
    if (event.data && event.data.event === 'fullscreenchange') {
        console.log('Fullscreen mode:', event.data.isFullscreen ? 'enabled' : 'disabled');
    }
});

See alsoSee also

  • Getting started with the video player SDK for IFrame
  • Player initialization parameters
  • Player methods

Was the article helpful?

Previous
Player methods
Next
iOS
© 2026 Direct Cursus Technology L.L.C.