Default Resolution - YouTube

Choose the default resolution for YouTube videos!

  1. // ==UserScript==
  2. // @name Default Resolution - YouTube
  3. // @namespace https://greatest.deepsurf.us/en/users/670188-hacker09?sort=daily_installs
  4. // @version 2
  5. // @description Choose the default resolution for YouTube videos!
  6. // @author hacker09
  7. // @match https://m.youtube.com/watch?v=*
  8. // @match https://www.youtube.com/embed/*
  9. // @match https://www.youtube.com/watch?v=*
  10. // @icon https://www.youtube.com/s/desktop/03f86491/img/favicon.ico
  11. // @run-at document-end
  12. // @grant GM_getValue
  13. // @grant GM_setValue
  14. // ==/UserScript==
  15.  
  16. setTimeout(() => {
  17. 'use strict';
  18. if (GM_getValue('Default_Desktop_Resolution') === undefined) //If the Default_Resolution wasn't set yet
  19. { //Starts the if condition
  20. GM_setValue('Default_Desktop_Resolution', 'hd1080'); //Save the Default YT Desktop Resolution as 1080p
  21. GM_setValue('Default_Mobile_Resolution', 'tiny'); //Save the Default YT Mobile Resolution as 144p
  22. } //Finishes the if condition
  23.  
  24. document.querySelector(".html5-main-video").addEventListener("play", (ev) => {
  25. ev.target.closest('#movie_player').setPlaybackQualityRange((navigator.userAgentData.mobile === true) ? GM_getValue('Default_Mobile_Resolution') : (ev.target.closest('#movie_player').getAvailableQualityLevels().includes(GM_getValue('Default_Desktop_Resolution')) === true) ? GM_getValue('Default_Desktop_Resolution') : ev.target.closest('#movie_player').getAvailableQualityLevels()[0]); //If the user is on mobile, use the default mobile resolution, otherwise if the default desktop resolution exists use it, or if it doesn't exist then use the highest resolution available
  26. }, { once: true });
  27. }, 800);