YouTube 标准画质

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

当前为 2025-04-22 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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();
})();