// ==UserScript== // @name m.YouTube.com quality change buttons // @namespace m-youtube-com-quality-change-buttons // @version 1.2 // @description Adds quality change buttons below the video (144p, 240p, 360p, 480p, 720p, 1080p) // @author hlorand.hu // @match https://m.youtube.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net // @grant none // @license https://creativecommons.org/licenses/by-nc-sa/4.0/ // @downloadURL none // ==/UserScript== // Screenshot: https://ibb.co/pyXQd4C (function() { //'use strict'; function addbuttons(){ document.getElementById("qualitybuttons").innerHTML = ""; var player = document.getElementById('movie_player'); const qualities = ["tiny","small","medium","large","hd720","hd1080"]; qualities.forEach((quality)=>{ let button = document.createElement('button'); button.setAttribute("quality", quality); let text = ""; switch( quality ){ case 'tiny': text = '144p'; break; case 'small': text = '240p'; break; case 'medium': text = '360p'; break; case 'large': text = '480p'; break; case 'hd720': text = '720p'; break; case 'hd1080': text = '1080p'; break; } button.textContent = text; button.className = "qualitybutton"; button.style.margin = "5px"; button.style.padding = "5px"; button.style.backgroundColor = "green"; button.style.position = "relative"; button.onclick = function() { player.setPlaybackQualityRange( this.getAttribute("quality") ); document.querySelectorAll(".qualitybutton").forEach((btn)=>{ btn.style.backgroundColor = "green"; }); this.style.backgroundColor = "darkorange"; }; let div = document.querySelector('.related-chips-slot-wrapper'); div.insertBefore(button, div.firstChild); }); // end qualities foreach } // end addbuttons window.addEventListener('load', function () { setInterval(()=>{ if( document.getElementById("qualitybuttons") == undefined ){ let parent = document.querySelector('.related-chips-slot-wrapper'); let wrapper = document.createElement('div'); wrapper.setAttribute("id","qualitybuttons"); parent.insertBefore(wrapper, parent.firstChild); addbuttons(); } }, 1000); }); // end addEventListener })();