youtube记忆画面清晰度

2023/7/27 11:45:08

目前为 2023-08-26 提交的版本。查看 最新版本

// ==UserScript==
// @name        youtube记忆画面清晰度
// @namespace   Violentmonkey Scripts
// @match        *://www.youtube.com/watch?v=*
// @match        *://www.youtube.com/*
// @grant       none
// @version     3.1
// @author      lazy cat
// @description 2023/7/27 11:45:08
// @run-at      document-end
// @license MIT
// @homepageURL      https://gf.qytechs.cn/zh-CN/scripts/473553-youtube%E9%BB%98%E8%AE%A4%E5%BC%80%E5%90%AF%E6%9C%80%E9%AB%98%E7%94%BB%E8%B4%A8
// @homepage        https://gf.qytechs.cn/zh-CN/scripts/473553-youtube%E9%BB%98%E8%AE%A4%E5%BC%80%E5%90%AF%E6%9C%80%E9%AB%98%E7%94%BB%E8%B4%A8
// ==/UserScript==
(function(){
    function t_stop(num){
        return new Promise((resolve)=>{setTimeout(resolve, num)})
    }
    async function set_max_voice_px() {
        if (j_num>50){
            return
        }
        let player = document.querySelector('div[id="movie_player"]')
        if (player && player.getAvailableQualityLevels && player.getAvailableQualityLevels().length > 0){
            await t_stop(500)
            let v_list = player.getAvailableQualityLevels()
            let user_articulation = localStorage.getItem('user_articulation')
            // 根据本地数据进行判断
            if (!user_articulation){
                player.setPlaybackQualityRange(v_list[0])
            }
            else{
                if (v_list.includes(user_articulation)){
                    player.setPlaybackQualityRange(user_articulation)
                }
                else{
                    let original_data = ['tiny', 'small', 'medium', 'large', 'hd720', 'hd1080', 'hd1440', 'hd2160', 'hd2880', 'highres'].reverse()
                    let u_index = original_data.indexOf(user_articulation)
                    let need_list = original_data.slice(u_index+1)
                    if (need_list.length === 0){
                        player.setPlaybackQualityRange(v_list[0])
                        j_num = 0
                        // 保存清晰度
                        player.addEventListener('onPlaybackQualityChange', (e)=>{
                            localStorage.setItem('user_articulation', e)
                        })
                        return
                    }
                    for (let a of need_list){
                        if (v_list.includes(a)){
                            player.setPlaybackQualityRange(a)
                        }
                    }

                }
            }
            j_num = 0
            // 保存清晰度
            player.addEventListener('onPlaybackQualityChange', (e)=>{
                localStorage.setItem('user_articulation', e)
            })
        }
        else{
            j_num++
            await t_stop(100)
            set_max_voice_px()
        }
    }
    function list_judgment() {
        set_max_voice_px()
        //循环检查页面是否改变
        setInterval(() => {
            new_url = String(window.location.href)
            if (new_url != url){
                j_num = 0
                set_max_voice_px()
                url = new_url
            }
        }, 1000);
    }
    //开始运行程序
    var j_num = 0
    var new_url = ''
    var url = String(window.location.href)
    list_judgment()
    })()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址