NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name 30% volume // @namespace 30-volume // @description Makes HTML5 video and audio default to 30% // @include * // @version 1 // @grant none // ==/UserScript== function checkForVolumethings() { var videolist = document.getElementsByTagName('video'); if(videolist.length != 0) { //iterate through all the video in the document for(var i = 0; i < videolist.length; i++) { //set attribute so that we don't reset volumes that have been user set if(!videolist[i].hasAttribute("data-defaultset")) { videolist[i].volume = 0.25; videolist[i].setAttribute("data-defaultset", "true"); } } } var audiolist = document.getElementsByTagName('audio'); if(audiolist.length != 0) { //iterate through all the audio in the document for(var i = 0; i < audiolist.length; i++) { //set attribute so that we don't reset volumes that have been user set if(!audiolist[i].hasAttribute("data-defaultset")) { audiolist[i].volume = 0.25; audiolist[i].setAttribute("data-defaultset", "true"); } } } //for stuff that's added via jquery //window.setTimeout(checkForVolumethings, 500); } document.onload = setObserver(); window.onload = loadObserver(); function setObserver() { //initial check for things checkForVolumethings(); var observer = new MutationObserver(function() { checkForVolumethings(); }); var config = {attributes: true, childList: true, characterData: true, subtree: true }; } function loadObserver() { observer.observe(document.body, config); }