Automatically mutes the Twitch player when an advertisement started and unmute it once finished. You can also hide ads by setting disableDisplay to true.
当前为 
// ==UserScript==
// @name        Twitch - Mute ads and optionally hide them
// @namespace   TWITCHADS
// @description Automatically mutes the Twitch player when an advertisement started and unmute it once finished. You can also hide ads by setting disableDisplay to true.
// @include     https://www.twitch.tv/*
// @include     https://twitch.tv/*
// @version     1.05
// @license     MIT
// @author      Harest
// @grant       none
// ==/UserScript==
(function() {
  var _tmuteVars = { "timerCheck": 1000, // Checking rate of ad in progress
                    "playerMuted": false, // Player muted or not
                    "adsDisplayed": 0, // Number of ads displayed
                    "disableDisplay": false, // Disable the player display during an ad (true = yes, false = no (default))
                    "alreadyMuted": false // Used to check if the player is muted at the start of an ad
                   };
  // Check if there's an ad
  function checkAd()
  {
    var advert = document.getElementsByClassName('player-ad-notice'); // class "twitch-stitched-ad" doesn't seem to appear
    if ((advert.length >= 1 && _tmuteVars.playerMuted === false) || (_tmuteVars.playerMuted === true && advert.length === 0)) 
    {
      console.log(advert);
      // Update at the start of an ad if the player is already muted or not
      if (advert.length >= 1) _tmuteVars.alreadyMuted = Boolean(document.getElementsByClassName("unmute-button").length); 
      mutePlayer();
    }
  }
  // (un)Mute Player
  function mutePlayer()
  {
    if (document.getElementsByClassName("player-button--volume").length >= 1)
    {
      if (_tmuteVars.alreadyMuted === false) document.getElementsByClassName("player-button--volume")[0].click(); // If the player is already muted before an ad, we avoid to unmute it.
      _tmuteVars.playerMuted = !(_tmuteVars.playerMuted);
      if (_tmuteVars.playerMuted === true)
      {
        _tmuteVars.adsDisplayed++;
        console.log("Ad #" + _tmuteVars.adsDisplayed + " detected. Player " + (_tmuteVars.alreadyMuted === true ? "already " : "") + "muted.");
        if (_tmuteVars.disableDisplay === true) document.getElementsByClassName("player-video")[0].style.visibility = "hidden";
      } else {
        console.log("Ad #" + _tmuteVars.adsDisplayed + " finished." + (_tmuteVars.alreadyMuted === true ? "" : " Player unmuted."));
        if (_tmuteVars.disableDisplay === true) document.getElementsByClassName("player-video")[0].style.visibility = "visible";
      }
    } else {
      console.log("No volume button found (class changed ?).");
    }
  }
  _tmuteVars.autoCheck = setInterval(checkAd, _tmuteVars.timerCheck);
})();