Players Lifecycle Events

Track your viewers progress

The following events are emitted from the player during the player state change or progress update:

  • video_play
  • video_pause
  • video_end
  • time_update
  • progress_10
  • progress_25
  • progress_50
  • progress_75
  • progress_90
  • progress_100
  • video_unavailable
  • playback_error

The structure of a lifecycle event is as follows:

event: { data: { event: "video_play", // Name of the event version: 1, // Version of the player events, similar to API version, info: { title: "The Video Title", token: reoCjremf // Unique identifier for a video currentTime: 2, // Time in video occurred at, formattedTime: 0:02 // MM:SS formatted current time, duration: 41 // Integer duration of video, formattedDuration: 0:41 //MM:SS formatted duration } } }

For example, if you were to be listening for a time_update event, the following listener code would log each time_update event:

window.addEventListener("message", (event) => { var info = event.data && event.data.event == "time_update" && event.data.info if (info) { var newTime = info.currentTime console.log("New Time: " + newTime) // Take your action here based on the newTime } }, false);

🚧

Note that progress events represent the current time in the video. Therefore, if navigation is enabled, a viewer could skip to the end of the video and emit a progress_100 event without watching 100% of the video. If you need accurate percentage, consider using Webhooks or the API instead.

📘

Get in Touch

Need help or want to know more about JavaScript Events for Mindstamp? We're here for you! Contact engineering@mindstamp.com to learn more.