Greasy Fork is available in English.

Default Resolution - YouTube

Choose the default resolution for YouTube videos!

// ==UserScript==
// @name         Default Resolution - YouTube
// @namespace    https://greasyfork.org/en/users/670188-hacker09?sort=daily_installs
// @version      2
// @description  Choose the default resolution for YouTube videos!
// @author       hacker09
// @match        https://m.youtube.com/watch?v=*
// @match        https://www.youtube.com/embed/*
// @match        https://www.youtube.com/watch?v=*
// @icon         https://www.youtube.com/s/desktop/03f86491/img/favicon.ico
// @run-at       document-end
// @grant        GM_getValue
// @grant        GM_setValue
// ==/UserScript==

setTimeout(() => {
  'use strict';
  if (GM_getValue('Default_Desktop_Resolution') === undefined) //If the Default_Resolution wasn't set yet
  { //Starts the if condition
    GM_setValue('Default_Desktop_Resolution', 'hd1080'); //Save the Default YT Desktop Resolution as 1080p
    GM_setValue('Default_Mobile_Resolution', 'tiny'); //Save the Default YT Mobile Resolution as 144p
  } //Finishes the if condition

  document.querySelector(".html5-main-video").addEventListener("play", (ev) => {
    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
  }, { once: true });
}, 800);