Yandex Cloud
Search
Discuss with expertTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • 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 state
        • Player events
    • Browser autoplay policy
  • Access management
  • Pricing policy
  • Audit Trails events
  • Release notes
  • Troubleshooting
  1. Video Player
  2. SDK
  3. JavaScript
  4. Player events

Player events

Written by
Yandex Cloud
Updated at July 20, 2026
View in Markdown

Using the on and once methods of the JavaScript SDK, you can subscribe to Cloud Video Player events:

SourceChangeSourceChange

Switching content.

The handler in the { source } object receives a new content link.

Here is an example:

player.on('SourceChange', ({ source }) => {
    console.log(source);
});

StatusChangeStatusChange

Changing the playback status.

The handler in the { status } object receives a new playback status value.

Here is an example:

player.on('StatusChange', ({ status }) => {
    console.log(status);
});

ErrorChangeErrorChange

Getting or resetting an error.

The handler in the { error } object receives an error.

An error is reset when switching content (if switching content is possible). In this case, the handler receives the error object with the undefined value.

Here is an example:

player.on('ErrorChange', ({ error }) => {
    console.log(error);
});

CurrentTimeChangeCurrentTimeChange

Changing the position on the timeline.

The handler in the { currentTime } object receives a new current time value.

Here is an example:

player.on('CurrentTimeChange', ({ currentTime }) => {
    console.log(currentTime);
});

DurationChangeDurationChange

Changing the video duration.

The handler in the { duration } object receives a new duration value.

This event may occur:

  • When you change content.
  • Periodically for the EVENT type videos as their duration continuously increases.
  • When the LIVE video type changes to VOD.

Here is an example:

player.on('DurationChange', ({ duration }) => {
    console.log(duration);
});

VideoTypeChangeVideoTypeChange

Changing the video type.

The handler in the { videoType } object receives a new video type value.

This event may occur:

  • When you change content.
  • When the LIVE or EVENT video type changes to VOD.

Here is an example:

player.on('VideoTypeChange', ({ videoType }) => {
    console.log(videoType);
});

MutedChangeMutedChange

Changing the video muted status.

The handler in the { muted } object receives a new muted status value.

Here is an example:

player.on('MutedChange', ({ muted }) => {
    console.log(muted);
});

VolumeChangeVolumeChange

Changing the video sound volume.

The handler in the { volume } object receives a new volume level value.

Here is an example:

player.on('VolumeChange', ({ volume }) => {
    console.log(volume);
});

PlaybackSpeedChangePlaybackSpeedChange

Changing playback speed.

The handler in the { playbackSpeed } object receives a new playback speed value.

Here is an example:

player.on('PlaybackSpeedChange', ({ playbackSpeed }) => {
    console.log(playbackSpeed);
});

UtcStartTimeChangeUtcStartTimeChange

Changing the UTC video start time.

The handler in the { utcStartTime } object receives a new UTC time value.

This event may occur:

  • When you change content.
  • When the LIVE video type changes to VOD.

Here is an example:

player.on('UtcStartTimeChange', ({ utcStartTime }) => {
    console.log(utcStartTime);
});

SeekableRangeChangeSeekableRangeChange

Changing the seekable range.

The handler in the { seekableRange } object receives a new seekable range value.

This event may occur:

  • When you change content.
  • Periodically for the LIVE and EVENT type videos as their seekable range continuously increases.

Here is an example:

player.on('SeekableRangeChange', ({ seekableRange }) => {
    console.log(seekableRange.start, seekableRange.end);
});

BufferedRangesChangeBufferedRangesChange

Changing the buffered ranges.

The handler in the { bufferedRanges } object receives an array with a new description of buffered ranges.

Here is an example:

player.on('BufferedRangesChange', ({ bufferedRanges }) => {
    console.log(bufferedRanges);
});

FullscreenStateChangeFullscreenStateChange

Changing the fullscreen mode state.

The handler receives the { isFullscreen } object containing the updated fullscreen state value.

Here is an example:

player.on('FullscreenStateChange', ({ isFullscreen }) => {
    console.log(isFullscreen);
});

TextTracksChangeTextTracksChange

Updating the list of available text tracks (captions).

The handler receives the { textTracks } object containing the new array of available tracks.

Here is an example:

player.on('TextTracksChange', ({ textTracks }) => {
    console.log(textTracks);
});

VideoTracksChangeVideoTracksChange

Updating the list of available video tracks.

The handler receives the { videoTracks } object containing the new array of available tracks.

Here is an example:

player.on('VideoTracksChange', ({ videoTracks }) => {
    console.log(videoTracks);
});

VideoTrackChangeVideoTrackChange

Updating the current video track.

The handler receives a new current track value in the { videoTrack } object.

Here is an example:

player.on('VideoTrackChange', ({ videoTrack }) => {
    console.log(videoTrack);
});

Useful linksUseful links

Interface: PlayerSdkEventHandlers, description of player event handlers in the API reference

Was the article helpful?

Previous
Player state
Next
Modules
© 2026 Direct Cursus Technology L.L.C.