只允许YouTube选择1080P60、1080P30、720P60、720P30画质,避免由于网络问题卡顿:高画质用不上费流量、低网速降画质瞎眼睛。
当前为
// ==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();
})();