您需要先安装一个扩展,例如 篡改猴、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();
- })();