Prime Video - toggle pause on minimize or hide

Pause Amazon Prime Video movie on minimize, hide, tab switch... and play when it's back.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Prime Video - toggle pause on minimize or hide
// @version      2025-04-06
// @namespace    Jakub Marcinkowski
// @description  Pause Amazon Prime Video movie on minimize, hide, tab switch... and play when it's back.
// @author       Jakub Marcinkowski <kuba.marcinkowski on g mail>
// @copyright    2024+, Jakub Marcinkowski <kuba.marcinkowski on g mail>
// @license      Zlib
// @homepageURL  https://gist.github.com/JakubMarcinkowski
// @homepageURL  https://github.com/JakubMarcinkowski
// @match        https://*.primevideo.com/*
// @icon         data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii01MCAtNTAgMTAwIDEwMCI+PGxpbmVhckdyYWRpZW50IGlkPSJnIiB5MT0iMSIgeDI9IjEiPjxzdG9wIHN0b3AtY29sb3I9IiMwYTNkODAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMDI5YmQyIiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxjaXJjbGUgcj0iNTAiIGZpbGw9InVybCgjZykiLz48cGF0aCBkPSJNLTEzLC0yMFYyMEwyMCwwIiBmaWxsPSIjZmZmIi8+PC9zdmc+
// @noframes
// @grant        none
// ==/UserScript==

(function() {
  'use strict';

  document.addEventListener("visibilitychange", () => {
    const player = document.querySelector('video[id^="dummy"][src^="blob"]');
    if (document.visibilityState === 'hidden') {
      player.pause();
    } else {
      player.play();
    }
  });
})();