Skip Amazon Prime Video Ads

This script skips Prime Video ads in English and German – adapted from Mattealex https://greasyfork.org/en/scripts/393617-skip-amazon-prime-video-ads

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        Skip Amazon Prime Video Ads
// @description This script skips Prime Video ads in English and German – adapted from Mattealex https://greasyfork.org/en/scripts/393617-skip-amazon-prime-video-ads
// @author floriegl
// @license https://creativecommons.org/licenses/by-sa/4.0/
// @match https://primevideo.com/region/*/detail/*
// @match https://*.primevideo.com/region/*/detail/*
// @match https://primevideo.com/detail/*
// @match https://*.primevideo.com/detail/*
// @match https://amazon.com/Episode-*/dp/*
// @match https://*.amazon.com/Episode-*/dp/*
// @match https://amazon.de/Episode-*/dp/*
// @match https://*.amazon.de/Episode-*/dp/*
// @match https://amazon.com/gp/video/detail/*
// @match https://*.amazon.com/gp/video/detail/*
// @match https://amazon.de/gp/video/detail/*
// @match https://*.amazon.de/gp/video/detail/*
// @version     1.2
// @icon        https://images-eu.ssl-images-amazon.com/images/I/411j1k1u9yL.png
// @namespace https://greasyfork.org/users/703184
// ==/UserScript==

(function() {
    'use strict';
    async function skipAd() {
        if (document.querySelectorAll(".atvwebplayersdk-adtimeindicator-text").length) {
            for (const a of document.querySelectorAll(".atvwebplayersdk-bottompanel-container div")) {
                if (a.textContent == "Überspringen" || a.textContent == "Skip") {
                    await new Promise(r => setTimeout(r, 500));
                    a.click();
                    while (document.querySelectorAll(".atvwebplayersdk-adtimeindicator-text").length) {
                        await new Promise(r => setTimeout(r, 1000));
                    }
                }
            }
        }
        window.setTimeout(skipAd, 100);
    }
    skipAd();
})();