Auto PiP on Tab Switch

Automatically enable Picture-in-Picture mode for videos when switching tabs

// ==UserScript==
// @name         Auto PiP on Tab Switch
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Automatically enable Picture-in-Picture mode for videos when switching tabs
// @author       FerNikoMF
// @match        *://*/*
// @grant        none
// @name:ru      Auto PiP при переключении вкладок
// @description:ru  Этот скрипт автоматически включает режим Picture-in-Picture (PiP) для видео, когда вы переключаетесь на другую вкладку. Когда вы возвращаетесь на вкладку с видео, PiP отключается.
// @license      MIT
// @icon         https://i.imgur.com/0OXnhxm.png
// ==/UserScript==

(function() {
    'use strict';

    let videoElement = null;
    let isPiP = false;

    function findVideo() {
        const videos = document.querySelectorAll('video');
        for (let video of videos) {
            if (video.readyState >= 2) {
                return video;
            }
        }
        return null;
    }

    document.addEventListener("visibilitychange", async () => {
        if (document.hidden) {
            videoElement = findVideo();
            if (videoElement && !document.pictureInPictureElement) {
                try {
                    await videoElement.requestPictureInPicture();
                    isPiP = true;
                } catch (error) {
                    console.error("Ошибка включения PiP:", error);
                }
            }
        } else {
            if (document.pictureInPictureElement) {
                document.exitPictureInPicture();
                isPiP = false;
            }
        }
    });
})();