Greasy Fork is available in English.

Advertisement Hide - Youtube

Выключает рекламу или звук в рекламе на ресурсе Youtube

// ==UserScript==
// @name           Advertisement Hide - Youtube
// @namespace      scriptomatika
// @author         mouse-karaganda
// @description    Выключает рекламу или звук в рекламе на ресурсе Youtube
// @license        MIT
// @include        https://*.youtube.com/*
// @require        https://greasyfork.org/scripts/379902-include-tools/code/Include%20Tools.js
// @version        1.4
// @grant          none
// ==/UserScript==

(function(unsafeWindow) {
    let console = unsafeWindow.console;
    let $ = unsafeWindow.jQuery;
    let $$ = unsafeWindow.__krokodil;

    $$.renderStyle(
        '',
        ''
    );

    unsafeWindow.greasyMovieVolumeOn = false;

    /**
     * Выключает звук на внутренней рекламе
     */
    let muteInternalAdverts = function() {
        let button;

        if (button = $$.get(`.ytp-ad-overlay-slot .ytp-ad-overlay-close-button`)) {
            $$.fireEvent(button, 'click');
        }
        if (button = $$.get(`.video-ads .ytp-ad-skip-button-container`)) {
            $$.fireEvent(button, 'click');
        }
        // Сравнивать по строковому значению title - ужасно.
        // Но другого способа нет, потому что не меняются другие атрибуты
        if (button = $$.get(`.ytp-ad-preview-container`)) {
            if (button = $$.get(`#movie_player .ytp-mute-button[title^="Отключение звука"]`)) {
                $$.fireEvent(button, 'click');
            }
            unsafeWindow.greasyMovieVolumeOn = false;
        } else {
            if (!unsafeWindow.greasyMovieVolumeOn) {
                if (button = $$.get(`#movie_player .ytp-mute-button[title^="Включить звук"]`)) {
                    $$.fireEvent(button, 'click');
                }
                unsafeWindow.greasyMovieVolumeOn = true;
            }
        }
    };

    let muteTimer = setInterval(muteInternalAdverts, 80);
    console.log('Advertisement Hide - Youtube');
})(typeof unsafeWindow === 'object' ? unsafeWindow : window);