// ==UserScript== // @name 9anime Auto Best Resolution // @namespace http://tampermonkey.net/ // @version 1.1 // @description Automatcially select the highest resolution on vidstream/mycloud streams // @author Discord: int3nse#0854 // @match https://vidstream.pro/* // @match https://vidstreamz.online/* // @match https://mcloud.to/* // @match https://vizcloud.co/* // @icon https://www.google.com/s2/favicons?sz=64&domain=9anime.to // @grant none // @license MIT // @downloadURL none // ==/UserScript== (async () => { 'use strict'; function waitForElement(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); }); } const qualityMenuSelector = '#jw-settings-submenu-quality > div'; const menu = await waitForElement(qualityMenuSelector); const qualityButtons = menu.children; if (!qualityButtons || !qualityButtons.length || qualityButtons.length < 2) { // Something really wrong happened, but we can't do anything about it. Fail fast! console.warn('9anime Auto Best Resolution userscript failed to find quality selector buttons!'); // Not that anyone will be able to see it... return; } // 2nd button, since the first is "Auto" const bestQualityButton = qualityButtons[1]; // Mission complete! bestQualityButton.click(); })();