The HTMLVideoElement method requestPictureInPicture() issues an asynchronous request to display the video in picture-in-picture mode.

It's not guaranteed that the video will be put into picture-in-picture. If permission to enter that mode is granted, the returned Promise will resolve and the video will receive a enterpictureinpicture event to let it know that it's now in picture-in-picture.



Return value

A Promise that will resolve to a PictureInPictureWindow object. that can be used to listen when a user will resize that floating window.


This example requests that the video enters Picture-in-Picture mode, and sets an event listener to handle the floating window resizing.

function enterPictureInPicture() {
    .then(pictureInPictureWindow => {
      pictureInPictureWindow.addEventListener("resize", () => onPipWindowResize(), false);


Specification Status Comment
Picture-in-Picture API
The definition of 'HTMLVideoElement.requestPictureInPicture()' in that specification.
Draft Initial definition.

Browser compatibility

BCD tables only load in the browser

See also