Automcatically switches to your pre-selected resolution. Enables premium when possible.
These are versions of this script where the code was updated. Show all versions.
Updated video load handling to give better compatibility for iframe videos. minor bug fixes
[Critical Bug Fix] Script would fail to find the correct element to attach to under certain conditions and thus would fail to trigger.
Fixed an absolutely absurd number of very minor bugs. Cleaned up code a bit.
[Bug Fix] Script should not run if user settings fail to load.
debug options changed from a in-code flag to a persistent setting. Better verification logic. Changed verification logic to account for edge case where the script fails to set quality but YouTube auto quality happens to set the playback quality to one that matches what the script would have set if it was successful. This used to cause the verification to pass even though it should have failed. A consequence of this is that youtube's auto quality would be overridden. No other quality levels will be overriden, keeping the same behaviour as before. [m] bug fixes.
[CRITICAL BUG FIX] Last update broke the script and loading a youtube page with no videos (e.g. homepage) would cause the script to crash.
Changed the verification mechanism to only run after the video has started playing. Changed the verification mechanism to run everytime the video switches from pause to play. This should hopefully cover the edge case that occurs when video resumes after browser/tab sleep. Changed the UI menu expansion state to be persistent.
[minor] Changed url matching to be more flexible in case anyone is loading non-http verions of youtube.
[minor] Changed logging behaviour to include line number. Defined homepage.
Remove call to deleted function.
Removed function to write quality preference to browser storage. I must have IQ below 0. YouTube already writes to localStorage so we don't need to do that ourselves with the script.
maybe?
HAIYA
Accidentally removed something in version 2024.09.01. Shouldn't be noticable on most setups regardless.
oooooooooooops.
Changed the script to write quality change action to browser storage. This should'nt change how the script change settings, but should hopefully allow YouTube to periodically re-check quality preference when playing a very long video, or if the video tab has been left open for extended periods of time.
Changed the check for Shorts to run before other checks. Disabled the verification step if quality is not being actively set.
Updated verification logic to be less agressive and more consistent.
Updated verification to run after yt-navigate-finish.
Increased retry delay from 200ms to 250ms.
Added a check to make sure that the selected quality is actually applied. Previously the settings would apply after a long delay if the video content somehow loads earlier than the video player itself. Definitely a weird case, but I think the bug could consistently be triggered if a setup is configured such that the machine itself is underpowered but is paired with some exceedingly fast internet.
Fixed compatibility with TamperMonkey caused b TamperMonkey not yet fully supporting GreaseMonkey 4 functions.
[minor] Updated for readability and minor stuff like that.
...
Fixed the issue that moving back and forth in browser history without loading a new video would cause the script to detect the same video and skip applying the user's quality settings.
[minor] Changed metadata indents to space instead of tabs. Looked too ugly.
Updated GM functions to newest version. This appears to have improved the menu's reponsiveness although that was not the initial intent when making this update.
Missed a permission. Now violentmonkey should work properly.
I really need to stop forgetting to change the debug flag...
Fixed bug that caused quality to be blank if playing video lacks the full range of quality options.
**Added explicit filter to block script from trying to run on youtube shorts.**
Fixed script not having the correct permissions when used with VioletMonkey. Now the script should read saved settings correctly. Removed the ability to change quality preferences in embedded pages.
set debug flag to false. oops.
Changed menu text for clarity.
[ADDED] New UI menu to allow the user to select the quality seemlessly.
[REMOVED] Deleted the design for users to change the target resolution through editing variables in code.
Fixed embedded videos not working.[Removed] Fetching last used YouTube setting.
Added an option to retrieve the last quality chosen on YouTube and use that instead.Reworked how settings are saved and retrieved to better account for future updates.Makes it so settings stored locally by YouTube are written back after video quality is changed by the script.
Very slight optimization. Realized that default behaviour was being needlessly overwritten with default behaviour. Removed that.
Updated setting order and rewrote code comments for better user clarity.Updated script information on GreasyFork.
Fixed a few minor bugs.Removed redundent code.
Actually fixed the bug this time. Hopefully. Hard to debug when I only occasionally trigger the bug and have no idea of the cause.
Fixed bug that caused mouse-over video previews to block video quality from applying.
Updated Premium mode to directly call YouTube API instead of using button emulations. So apparently the entire internet is wrong. There is a way to set premium bitrate with YouTube API, it's just not in the official documentations.Now will ALWAYS prefer premium bitrate when possible.
Fixed a typo in the Japanese description.
Show all script versions