自动切换抖音到最高可用画质(4K>2K>1080P>720P),每5分钟自动检测
当前为
// ==UserScript==
// @name 抖音自动切换最高画质
// @namespace http://tampermonkey.net/
// @version 1.1
// @description 自动切换抖音到最高可用画质(4K>2K>1080P>720P),每5分钟自动检测
// @author Your Name
// @match *://*.douyin.com/*
// @grant none
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgNzkuMWI2NWE3OWI0LCAyMDIyLzA2LzEzLTIyOjAxOjAxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDMtMjBUMTU6NTc6MjMrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMDMtMjBUMTU6NTc6MjMrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIzLTAzLTIwVDE1OjU3OjIzKzA4OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY2ZGJkMzA1LTM4ZjQtNDM5Yy1hYjI5LTBhZDY1ZTM0ZjI5YyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjY2ZGJkMzA1LTM4ZjQtNDM5Yy1hYjI5LTBhZDY1ZTM0ZjI5YyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY2ZGJkMzA1LTM4ZjQtNDM5Yy1hYjI5LTBhZDY1ZTM0ZjI5YyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY2ZGJkMzA1LTM4ZjQtNDM5Yy1hYjI5LTBhZDY1ZTM0ZjI5YyIgc3RFdnQ6d2hlbj0iMjAyMy0wMy0yMFQxNTo1NzoyMyswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKE1hY2ludG9zaCkiLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YjV8XwAAAMJJREFUOI2lkjEKwkAQRd9GwcLWG3gAS0FQELyDYGFh4QG8hEfwAoKFYGkp2NjYeQULwUoQJJXgT7EbWNZNTDTzYZhhdt7M7MyqEIIvkX0l/QvAGeNVwB5YAWNrbQBQSs2AK3CSUi5SSt+AO3ACllLKMbABTkKInff+EQMcgS2w1lrPgQuwE0JsvPePGGCQCnZa6wWwBQ7GmFUMoFKwM8asgB1wttYuY4BE8EopdQeewFlrPU8B3gJ+2YVPu/gY8AQezKQr6UonIQAAAABJRU5ErkJggg==
// ==/UserScript==
(function() {
'use strict';
let isQualitySwitched = false;
let currentQuality = null;
let lastAttemptTime = 0;
const CHECK_INTERVAL = 5 * 60 * 1000;
let checkTimer = null;
// 定义画质优先级
const qualityPriority = [
{ name: '超清 4K', minHeight: 2160 },
{ name: '超清 2K', minHeight: 1440 },
{ name: '高清 1080P', minHeight: 1080 },
{ name: '高清 720P', minHeight: 720 }
];
// 获取当前选中的画质
function getCurrentQuality() {
const selectedItem = document.querySelector('.virtual .item.selected');
return selectedItem ? selectedItem.textContent.trim() : null;
}
// 移除悬停效果
function removeHoverEffect() {
const mouseOutEvent = new MouseEvent('mouseout', {
bubbles: true,
cancelable: true,
view: window
});
const qualityButton = document.querySelector('.gear.isSmoothSwitchClarityLogin');
if (qualityButton) {
qualityButton.dispatchEvent(mouseOutEvent);
}
}
// 检查画质是否需要切换
function checkQualityNeedsSwitch() {
const currentSelectedQuality = getCurrentQuality();
const currentTime = Date.now();
// 如果没有当前画质,或画质不一致,或距离上次尝试已经过了检测间隔,则尝试切换
if (!currentQuality ||
currentSelectedQuality !== currentQuality ||
currentTime - lastAttemptTime >= CHECK_INTERVAL) {
isQualitySwitched = false;
switchToHighQuality();
}
}
function switchToHighQuality() {
if (isQualitySwitched) return;
const qualityButton = document.querySelector('.gear.isSmoothSwitchClarityLogin');
if (qualityButton) {
const mouseOverEvent = new MouseEvent('mouseover', {
bubbles: true,
cancelable: true,
view: window
});
qualityButton.dispatchEvent(mouseOverEvent);
setTimeout(() => {
const qualityOptions = Array.from(document.querySelectorAll('.virtual .item'));
// 查找最高可用画质
let selectedOption = null;
for (const quality of qualityPriority) {
const option = qualityOptions.find(opt =>
opt.textContent.includes(quality.name)
);
if (option) {
selectedOption = option;
break;
}
}
if (selectedOption) {
selectedOption.click();
currentQuality = selectedOption.textContent.trim();
lastAttemptTime = Date.now(); // 记录切换时间
console.log(`已切换到${currentQuality}画质`);
isQualitySwitched = true;
startQualityCheck();
} else {
// 未找到合适画质时,选择智能画质
const smartOption = qualityOptions.find(opt =>
opt.textContent.includes('智能')
);
if (smartOption) {
smartOption.click();
currentQuality = '智能';
lastAttemptTime = Date.now(); // 记录切换时间
console.log('未找到720P或更高画质,暂时切换到智能画质');
isQualitySwitched = true;
startQualityCheck();
}
}
// 无论是否找到合适画质,都移除悬停效果
setTimeout(removeHoverEffect, 100);
}, 500);
} else {
console.log('画质选择按钮未找到');
}
}
// 启动定时检测
function startQualityCheck() {
if (checkTimer) {
clearInterval(checkTimer);
}
checkTimer = setInterval(() => {
console.log('定时检测画质中...');
checkQualityNeedsSwitch();
}, CHECK_INTERVAL);
}
// 停止定时检测
function stopQualityCheck() {
if (checkTimer) {
clearInterval(checkTimer);
checkTimer = null;
}
}
// 使用 MutationObserver 监听页面变化
const observer = new MutationObserver((mutations) => {
if (document.querySelector('.gear.isSmoothSwitchClarityLogin') && !isQualitySwitched) {
switchToHighQuality();
}
});
// 开始观察文档的变化
observer.observe(document.body, { childList: true, subtree: true });
// 在页面切换时重置状态
window.addEventListener('urlchange', () => {
isQualitySwitched = false;
currentQuality = null;
lastAttemptTime = 0;
stopQualityCheck();
});
// 在页面卸载时清理定时器
window.addEventListener('unload', () => {
stopQualityCheck();
});
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址