您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
只允许 YouTube 选择 1080P60、1080P30、720P60、720P30 画质。避免由于网络问题卡顿:高画质用不上费流量、低网速降画质瞎眼睛。
// ==UserScript== // @name YouTube 标准画质 // @description 只允许 YouTube 选择 1080P60、1080P30、720P60、720P30 画质。避免由于网络问题卡顿:高画质用不上费流量、低网速降画质瞎眼睛。 // @match https://www.youtube.com/* // @version 1.0 // @author yzcjd // @author2 ChatGPT4 辅助 // @namespace https://greasyfork.org/users/1171320 // @license MIT // ==/UserScript== (function() { 'use strict'; // 定义优先顺序 const preferredQualities = ['hd1080', 'hd720']; // 监听播放状态变化 function hookPlayer() { const checkPlayer = () => { const player = document.getElementById('movie_player'); if (!player || typeof player.getAvailableQualityLevels !== 'function') { setTimeout(checkPlayer, 500); return; } console.log('[YouTube Quality Filter] Player ready, binding events.'); player.addEventListener('onStateChange', function(state) { if (state === 1) { // 播放开始 console.log('[YouTube Quality Filter] Playing - enforcing quality.'); enforceQuality(player); } }); // 视频切换或重新加载时,也重新检测 setInterval(() => { enforceQuality(player); }, 30000); // 每30秒强制一次,确保不会被降回高画质 }; checkPlayer(); } function enforceQuality(player) { if (!player || typeof player.getAvailableQualityLevels !== 'function') return; const levels = player.getAvailableQualityLevels(); // 获取当前可用画质 console.log('[YouTube Quality Filter] Available qualities:', levels); let targetQuality = null; if (levels.includes('hd1080')) { targetQuality = 'hd1080'; } else if (levels.includes('hd720')) { targetQuality = 'hd720'; } if (targetQuality) { console.log('[YouTube Quality Filter] Setting quality to:', targetQuality); player.setPlaybackQualityRange(targetQuality, targetQuality); player.setPlaybackQuality(targetQuality); } } // 监听YouTube内部的导航完成 window.addEventListener('yt-navigate-finish', () => { console.log('[YouTube Quality Filter] Navigation detected - Re-hooking player.'); setTimeout(hookPlayer, 1000); }); // 初次加载 hookPlayer(); })();