Twitch - Auto Best Video Quality

Twitch - Auto Best Video Quality (1440p, 1080p, 720p etc)

// ==UserScript==
// @name         Twitch - Auto Best Video Quality
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Twitch - Auto Best Video Quality (1440p, 1080p, 720p etc)
// @author       Martin______X
// @match        https://www.twitch.tv/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=twitch.tv
// @grant        none
// @license      MIT
// ==/UserScript==

let $url = "";
let $click_times = 0;
let $step = 1;
let $delay = 0;

const simpleClick = (async (target, step)=>{
    if(target){
        target.click();
    }
    if(step == 5){
        $step = 1;
        $click_times++;
    }else{
        $step++;
    }
});

//
const twitchVideoQualityInterval = setInterval(() => {
    let url = document.URL;
    if(url != $url){
        // multi clicks check
        if($click_times == 1){
            $click_times = 0;
            $url = url;
            $delay = 0;
        }else{
            if($delay<200){
                $delay++;
            }else{
                try{
                    let settings_button = document.querySelectorAll('[ARIA-LABEL="Settings"]')[0];
                    if(settings_button && $step==1){
                        simpleClick(settings_button, 1);
                    }
                    let quality_button = document.querySelectorAll('[DATA-A-TARGET="player-settings-menu-item-quality"]')[0];
                    if(quality_button && $step==2){
                        simpleClick(quality_button, 2);
                    }
                    //data-a-target="player-settings-menu"
                    let player_settings_menu = document.querySelectorAll('DIV[DATA-A-TARGET="player-settings-menu"]')[0];
                    if(player_settings_menu && $step==3){
                        let inputs = player_settings_menu.getElementsByTagName("INPUT");
                        if(inputs[1].hasAttribute("DISABLED")){
                            simpleClick(inputs[2], 3);
                        }else{
                            simpleClick(inputs[1], 3);
                        }
                    }
                    let main_menu = document.querySelectorAll('BUTTON[DATA-TEST-SELECTOR="main-menu"]')[0];
                    if(main_menu && $step==4){
                        simpleClick(main_menu, 4);
                    }
                    let menuitem = document.querySelectorAll('BUTTON[ROLE="menuitem"]')[0];
                    if(menuitem && $step==5){
                        simpleClick(menuitem, 5);
                    }
                }catch{/*do nothing*/}
            }
        }
    }
}, 1);
长期地址
遇到问题?请前往 GitHub 提 Issues。