Blocks Google Music Ads by muting them.
// ==UserScript==
// @name Mute Google Music Ads
// @namespace WillNiels
// @version 1.0
// @author William Nielsen
// @description Blocks Google Music Ads by muting them.
// @match http*://play.google.com/music/listen*
// @grant none
// ==/UserScript==
/* jshint -W097 */
'use strict';
var timerTry = 1000;
function muteAds(){
var volumeSlider = document.querySelector('#material-vslider');
if(localStorage.getItem("volume") == null){
localStorage.setItem("volume", 25);
}
if( document.querySelector('#currently-playing-title').innerHTML == "We'll be right back" ){
console.log('Mute Google Ads: Blocking the ad!');
volumeSlider.value = 0;
}else{
var preValue = localStorage.getItem("volume");
console.log("Volume set to: " + preValue + "%");
volumeSlider.value = preValue;
}
}
function setupObservers( ){
console.log("Mute Google Ads: Setting up observer.");
var songInfo = document.querySelector('#playerSongInfo');
var volumeSlider = document.querySelector('#material-vslider');
if (songInfo !== null && volumeSlider !== null) {
var config = {
childList: true,
subtree: true,
attributes: true,
characterData: true
};
//first observer for detecting ads
var observer = new window.MutationObserver(muteAds);
observer.observe(songInfo, config);
//second observer for saving volume setting
var observer2 = new window.MutationObserver(function(){
if(volumeSlider.value !== 0)
localStorage.setItem("volume",volumeSlider.value);
});
observer2.observe(volumeSlider, config);
}
else {
console.warn('Mute Google Ads: Failed to find player, Retrying...');
timerTry += 1000;
setTimeout(setupObservers, timerTry);
}
}
setTimeout(setupObservers, timerTry);