Greasy Fork

Prime Video Ad Blocker [ESP]

Skips Ads in Prime Video. Adapted from RawMeatEater's script for spanish Amazon site.

目前为 2022-08-01 提交的版本。查看 最新版本

// ==UserScript==
// @name         Prime Video Ad Blocker [ESP]
// @namespace    https://greasyfork.org/en/users/5102-jeau
// @version      0.1
// @description  Skips Ads in Prime Video. Adapted from RawMeatEater's script for spanish Amazon site.
// @author       Jeau
// @license      MIT
// @match        https://www.primevideo.com/*
// @icon         https://m.media-amazon.com/images/G/01/digital/video/DVUI/favicons/favicon-32x32.png
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // This value when true shows that the ad has been skipped
    var adSkipped = false;

    // Every 0.2 seconds, this function runs
    setInterval(function() {

        /* Debug info */
        // console.log('Checking existing Ads...');

        // Selects the video container's child (Which is the video element)
        var video = document.getElementsByClassName("rendererContainer")[0].children[2];

        // If Time To Skip element exist
        if ( document.getElementsByClassName("atvwebplayersdk-adtimeindicator-text")[0] ){

            // Has it been skipped aready? (This is so that way you don't skip forward twice)
            if ( adSkipped == false ) {

                // Grabs the ad timer in HH:MM:SS format and splits it into an array
                var currentAdTime = document.getElementsByClassName("atvwebplayersdk-adtimeindicator-text")[0].innerHTML.split(':');

                // Calculate the Ad time in seconds
                var adTimeInSecs = 0;
                for (let i = 0; i < currentAdTime.length; i++) {
                    adTimeInSecs += parseInt(currentAdTime[i]) * Math.pow(60, currentAdTime.length - 1 - i);
                }

                // It then skipped forward the video by how much ad time the timer shows
                video.currentTime = video.currentTime + adTimeInSecs;

                // Shows that the ad has been skipped
                adSkipped = true;
            }

        } else {
            // When ad timer disappers, reset the ad skip value
            adSkipped = false;
        }

    // When 200 milliseconds pass, execute script
    }, 200);

})();