This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2020.
The HTMLVideoElement method getVideoPlaybackQuality() creates and returns a VideoPlaybackQuality object containing metrics including how many frames have been lost.
The data returned can be used to evaluate the quality of the video stream.
getVideoPlaybackQuality()
None.
A VideoPlaybackQuality object providing information about the video element's current playback quality.
This example updates an element to indicate the total number of video frames that have elapsed so far in the playback process. This value includes any dropped or corrupted frames, so it's not the same as "total number of frames played."
const videoElem = document.getElementById("my_vid");
const counterElem = document.getElementById("counter");
const quality = videoElem.getVideoPlaybackQuality();
counterElem.innerText = quality.totalVideoFrames;
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
getVideoPlaybackQuality |
80 | 12 | 42 | 67 | 8 | 80 | 42 | 57 | 12.2 | 13.0 | 80 | 12.2 |
<video> elementVideoPlaybackQuality interface.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement/getVideoPlaybackQuality