跨标签页YouTube画中画/迷你播放器

在YouTube视频中按Shift+P切换画中画/迷你播放器模式

// ==UserScript==
// @name             YouTube Cross-Tab Picture-in-Picture/Miniplayer
// @name:ar          تشغيل صورة داخل صورة/مشغل مصغر على YouTube عبر علامات التبويب
// @name:bg          Picture-in-Picture/Минипейър за YouTube през различни табове
// @name:cs          Picture-in-Picture/Minipřehrávač YouTube mezi kartami
// @name:da          YouTube Picture-in-Picture/Minafspiller på tværs af faner
// @name:de          YouTube Bild-in-Bild/Miniplayer über Tabs hinweg
// @name:el          Picture-in-Picture/Μίνι αναπαραγωγή YouTube μεταξύ καρτελών
// @name:en          YouTube Cross-Tab Picture-in-Picture/Miniplayer
// @name:eo          YouTube Bildo-en-Bildo/Miniludilo trans tabuloj
// @name:es          Reproductor de imagen en imagen/minireproductor de YouTube entre pestañas
// @name:fi          YouTube Kuva kuvassa -tila/Miniasoitin eri välilehdissä
// @name:fr          Lecteur Picture-in-Picture/Mini-lecteur YouTube entre onglets
// @name:fr-CA       Lecteur Picture-in-Picture/Mini-lecteur YouTube entre onglets
// @name:he          תמונה בתוך תמונה/נגן מיני של YouTube בין כרטיסיות
// @name:hr          YouTube Picture-in-Picture/Mini-player između tabova
// @name:hu          YouTube Kép-a-képben/Minilejátszó lapok között
// @name:id          Picture-in-Picture/Miniplay YouTube Lintas Tab
// @name:it          Picture-in-Picture/Miniriprodutt ore YouTube tra schede
// @name:ja          YouTube クロスタブ Picture-in-Picture/ミニプレーヤー
// @name:ka          YouTube-ის სურათი სურათში/მინი-დამკვრელი ჩანართებს შორის
// @name:ko          YouTube 크로스 탭 픽처-인-픽처/미니 플레이어
// @name:nb          YouTube Picture-in-Picture/Minispiller på tvers av faner
// @name:nl          YouTube Picture-in-Picture/Minispeler tussen tabbladen
// @name:pl          Obraz w obrazie/Miniodtwarzacz YouTube między kartami
// @name:pt-BR       Picture-in-Picture/Minireprodutor do YouTube entre abas
// @name:ro          Picture-in-Picture/Mini-player YouTube între file
// @name:ru          Picture-in-Picture/Минипроигрыватель YouTube между вкладками
// @name:sk          Picture-in-Picture/Miniprehrávač YouTube medzi kartami
// @name:sr          Picture-in-Picture/Мини плејер YouTube-а између картица
// @name:sv          YouTube Bild-i-bild/Minispelare mellan flikar
// @name:th          Picture-in-Picture/มินิเพลเยอร์ของ YouTube ข้ามแท็บ
// @name:tr          YouTube Çapraz Sekme Resim İçinde Resim/Mini Oynatıcı
// @name:ug          YouTube كىرىش-بەت سۈرەت-ئىچىدە-سۈرەت/كىچىك ئويناتقۇچ
// @name:uk          Picture-in-Picture/Мініплеєр YouTube між вкладками
// @name:vi          Chế Độ Hình Trong Hình/Trình Phát Nhỏ YouTube Giữa Các Thẻ
// @name:zh          跨标签页YouTube画中画/迷你播放器
// @name:zh-CN       跨标签页YouTube画中画/迷你播放器
// @name:zh-HK       跨分頁YouTube畫中畫/迷你播放器
// @name:zh-SG       跨标签页YouTube画中画/迷你播放器
// @name:zh-TW       跨分頁YouTube畫中畫/迷你播放器

// @description      Press Shift+P to toggle Picture-in-Picture/Miniplayer mode on YouTube videos
// @description:ar   اضغط Shift+P للتبديل بين وضع الصورة داخل الصورة/المشغل المصغر على مقاطع YouTube
// @description:bg   Натиснете Shift+P за превключване на режим Picture-in-Picture/Минипейър при видеоклипове в YouTube
// @description:cs   Stiskněte Shift+P pro přepnutí do režimu Picture-in-Picture/Minipřehrávač na videích YouTube
// @description:da   Tryk på Shift+P for at skifte Picture-in-Picture/Miniafspiller-tilstand på YouTube-videoer
// @description:de   Drücken Sie Shift+P, um den Bild-in-Bild-/Miniplayer-Modus bei YouTube-Videos zu wechseln
// @description:el   Πατήστε Shift+P για εναλλαγή λειτουργίας Picture-in-Picture/Μίνι αναπαραγωγής σε βίντεο YouTube
// @description:en   Press Shift+P to toggle Picture-in-Picture/Miniplayer mode on YouTube videos
// @description:eo   Premu Shift+P por ŝalti Bildo-en-Bildo/Miniludilan reĝimon en YouTube-videoj
// @description:es   Presione Shift+P para alternar el modo Picture-in-Picture/Minireproductor en videos de YouTube
// @description:fi   Paina Shift+P vaihtaaksesi Kuva kuvassa -tilaan/Miniasoittimeen YouTube-videoissa
// @description:fr   Appuyez sur Shift+P pour basculer en mode Picture-in-Picture/Mini-lecteur sur les vidéos YouTube
// @description:fr-CA Appuyez sur Shift+P pour basculer en mode Picture-in-Picture/Mini-lecteur sur les vidéos YouTube
// @description:he   לחץ Shift+P כדי להחליף למצב תמונה בתוך תמונה/נגן מיני בסרטוני YouTube
// @description:hr   Pritisnite Shift+P za prebacivanje u Picture-in-Picture/Mini-player način na YouTube videima
// @description:hu   Nyomja meg a Shift+P billentyűket a Kép-a-képben/Minilejátszó mód váltásához YouTube videókon
// @description:id   Tekan Shift+P untuk beralih ke mode Picture-in-Picture/Miniplay di video YouTube
// @description:it   Premere Shift+P per attivare/disattivare la modalità Picture-in-Picture/Miniriprodutt ore nei video di YouTube
// @description:ja   YouTube動画でShift+Pキーを押してピクチャーインピクチャー/ミニプレーヤーモードを切り替え
// @description:ka   დააჭირეთ Shift+P-ს YouTube-ის ვიდეოებზე სურათი სურათში/მინი-დამკვრელის რეჟიმის გადასართავად
// @description:ko   YouTube 동영상에서 Shift+P를 눌러 픽처-인-픽처/미니 플레이어 모드 전환
// @description:nb   Trykk Shift+P for å veksle Picture-in-Picture/Minispiller-modus på YouTube-videoer
// @description:nl   Druk op Shift+P om de Picture-in-Picture/Minispeler-modus in te schakelen op YouTube-video's
// @description:pl   Naciśnij Shift+P, aby przełączyć tryb Obraz w obrazie/Miniodtwarzacza w filmach YouTube
// @description:pt-BR Pressione Shift+P para alternar o modo Picture-in-Picture/Minireprodutor em vídeos do YouTube
// @description:ro   Apăsați Shift+P pentru a comuta modul Picture-in-Picture/Mini-player pe videoclipurile YouTube
// @description:ru   Нажмите Shift+P для переключения режима Picture-in-Picture/Минипроигрывателя на видео YouTube
// @description:sk   Stlačte Shift+P pre prepnutie do režimu Picture-in-Picture/Miniprehrávač na videách YouTube
// @description:sr   Притисните Shift+P за пребацивање у Picture-in-Picture/Мини плејер режим на YouTube видео записима
// @description:sv   Tryck på Shift+P för att växla Bild-i-bild/Minispelare-läge på YouTube-videor
// @description:th   กด Shift+P เพื่อสลับโหมด Picture-in-Picture/มินิเพลเยอร์บนวิดีโอ YouTube
// @description:tr   YouTube videolarında Shift+P'ye basarak Resim İçinde Resim/Mini Oynatıcı modunu değiştirin
// @description:ug   YouTube سىنلىرىدا Shift+P نى بېسىپ سۈرەت-ئىچىدە-سۈرەت/كىچىك ئويناتقۇچ ھالىتىنى ئالماشتۇرۇڭ
// @description:uk   Натисніть Shift+P для перемикання режиму Picture-in-Picture/Мініплеєра на відео YouTube
// @description:vi   Nhấn Shift+P để chuyển đổi chế độ Hình Trong Hình/Trình Phát Nhỏ trên video YouTube
// @description:zh   在YouTube视频中按Shift+P切换画中画/迷你播放器模式
// @description:zh-CN 在YouTube视频中按Shift+P切换画中画/迷你播放器模式
// @description:zh-HK 在YouTube影片中按Shift+P切換畫中畫/迷你播放器模式
// @description:zh-SG 在YouTube视频中按Shift+P切换画中画/迷你播放器模式
// @description:zh-TW 在YouTube影片中按Shift+P切換畫中畫/迷你播放器模式
// @namespace    http://tampermonkey.net/
// @version      0.1.3
// @author       aspen138
// @match        https://www.youtube.com/*
// @grant        none
// @icon         https://www.youtube.com/favicon.ico
// @license      MIT
// ==/UserScript==


(function() {
    'use strict';

    // Function to toggle Picture-in-Picture
    function togglePictureInPicture(video) {
        if (document.pictureInPictureElement) {
            document.exitPictureInPicture()
                .then(() => {
                    console.log('Exited Picture-in-Picture mode');
                    // Clear the flag when exiting
                    localStorage.removeItem('pipActive');
                })
                .catch(error => {
                    console.error('Error exiting Picture-in-Picture:', error);
                });
        } else if (video) {
            video.requestPictureInPicture()
                .then(() => {
                    console.log('Entered Picture-in-Picture mode');
                    // Set a flag in localStorage
                    localStorage.setItem('pipActive', 'true');
                })
                .catch(error => {
                    console.error('Error entering Picture-in-Picture:', error);
                });
        }
    }

    // Keydown event listener
    document.addEventListener('keydown', function(e) {
        if (e.shiftKey && e.key === 'P') {
            const video = document.querySelector('video');
            togglePictureInPicture(video);
        }
    });

    // Storage event listener for cross-tab communication
    window.addEventListener('storage', function(e) {
        if (e.key === 'pipActive' && e.newValue === null) {
            // If another tab exited PiP, try to exit in this tab too
            if (document.pictureInPictureElement) {
                document.exitPictureInPicture()
                    .then(() => {
                        console.log('Cross-tab exit Picture-in-Picture mode');
                    })
                    .catch(error => {
                        console.error('Cross-tab exit error:', error);
                    });
            }
        }
    });

    // Check initial state on load
    window.addEventListener('load', function() {
        if (localStorage.getItem('pipActive') === 'true' && !document.pictureInPictureElement) {
            const video = document.querySelector('video');
            if (video) {
                togglePictureInPicture(video);
            }
        }
    });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址