// ==UserScript== // @name Force YouTube Quality // @namespace http://tampermonkey.net/ // @version 0.1 // @description Force YouTube to use a specified quality (if available) // @match *://www.youtube.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // The quality you want, e.g. "144p", "360p" const TARGET_QUALITY = '360p'; function setQuality() { let player = document.querySelector('video'); if (!player) return; // YouTube uses the HTML5 video + player API; try using the YT API if available if (window.yt && window.yt.player && window.yt.player.getPlayerByElement) { try { let ytplayer = window.yt.player.getPlayerByElement(player); if (ytplayer && ytplayer.setPlaybackQualityRange) { ytplayer.setPlaybackQualityRange(TARGET_QUALITY); ytplayer.setPlaybackQuality(TARGET_QUALITY); } else if (ytplayer && ytplayer.setPlaybackQuality) { ytplayer.setPlaybackQuality(TARGET_QUALITY); } } catch (e) { console.error('Quality set error', e); } } } // Run when URL changes / on load window.addEventListener('yt-navigate-finish', setQuality); window.addEventListener('spfdone', setQuality); window.addEventListener('load', () => { setTimeout(setQuality, 2000); }); })();