// ==UserScript== // @name Twitch - Mute ads // @namespace TWITCHADS // @description Automatically mutes the Twitch player when an advertisement started and unmute it once finished. // @include https://www.twitch.tv/* // @include https://twitch.tv/* // @version 1.0 // @license MIT // @author Harest // @grant none // @downloadURL none // ==/UserScript== var _tmuteVars = { "timerCheck": 1000, // Checking rate of ad in progress "playerMuted": false, // Player muted or not "adsDisplayed": 0 // Number of ads displayed; }; // Check if there's an ad function checkAd() { var advert = document.getElementsByClassName('twitch-stitched-ad'); //if (advert.length == 0) advert = document.getElementsByClassName('player-ad-notice'); // fallback test if ((advert.length >= 1 && _tmuteVars.playerMuted === false) || (_tmuteVars.playerMuted === true && advert.length === 0)) { console.log(advert); mutePlayer(); } } // (un)Mute Player function mutePlayer() { if (document.getElementsByClassName("player-button--volume").length >= 1) { document.getElementsByClassName("player-button--volume")[0].click(); _tmuteVars.playerMuted = !(_tmuteVars.playerMuted); if (_tmuteVars.playerMuted === false) { _tmuteVars.adsDisplayed++; console.log("Ad #" + _tmuteVars.adsDisplayed + " detected. Player muted."); } else { console.log("Ad #" + _tmuteVars.adsDisplayed + " finished. Player unmuted."); } } else { console.log("No volume button found (class changed ?)."); } } _tmuteVars.autoCheck = setInterval(checkAd, _tmuteVars.timerCheck);