YouTube 标准画质

只允许YouTube选择1080P60、1080P30、720P60、720P30画质,避免由于网络问题卡顿:高画质用不上费流量、低网速降画质瞎眼睛。

目前為 2025-04-22 提交的版本,檢視 最新版本

// ==UserScript==
// @name         YouTube 标准画质
// @description  只允许YouTube选择1080P60、1080P30、720P60、720P30画质,避免由于网络问题卡顿:高画质用不上费流量、低网速降画质瞎眼睛。
// @match        https://www.youtube.com/*
// @version       0.1
// @author         yzcjd
// @author2       ChatGPT4 辅助
// @namespace   https://greasyfork.org/users/1171320
// @license MIT
// ==/UserScript==


(function() {
    'use strict';

    // 允许的画质
    const allowedQualities = ['1080p60', '1080p30', '720p60', '720p30'];

    // 等待视频质量选项加载
    function filterQuality() {
        const video = document.querySelector('video');
        const qualityMenu = document.querySelector('yt-player-quality-menu');

        if (!video || !qualityMenu) {
            // 视频或质量菜单尚未加载,继续检查
            setTimeout(filterQuality, 500);
            return;
        }

        // 获取当前可选的质量选项
        const qualityOptions = qualityMenu.querySelectorAll('yt-quality-select');
        qualityOptions.forEach(option => {
            const quality = option.getAttribute('quality-label').toLowerCase();
            if (!allowedQualities.includes(quality)) {
                // 隐藏不符合的质量选项
                option.style.display = 'none';
            }
        });

        // 强制设置合适的质量
        const currentQuality = video.getVideoQuality();
        if (allowedQualities.includes(currentQuality.toLowerCase())) {
            return; // 如果已经是允许的质量,什么也不做
        }

        // 默认设置为1080p60
        const defaultQuality = '1080p60';
        video.setVideoQuality(defaultQuality);
    }

    // 监听视频质量菜单变化
    const observer = new MutationObserver(filterQuality);
    observer.observe(document.body, { childList: true, subtree: true });

    // 初次执行
    filterQuality();
})();