Warning: fopen(/www/sites/update.greasyfork.icu/index/store/forever/d30d2e4fd4d725bae3a874afab5d0b92.js): failed to open stream: No space left on device in /www/sites/update.greasyfork.icu/index/scriptControl.php on line 65
// ==UserScript==
// @name youtube记忆画面清晰度
// @namespace Violentmonkey Scripts
// @match *://www.youtube.com/watch?v=*
// @match *://www.youtube.com/*
// @grant none
// @version 3.1
// @author lazy cat
// @description 2023/7/27 11:45:08
// @run-at document-end
// @license MIT
// @homepageURL https://greasyfork.org/zh-CN/scripts/473553-youtube%E9%BB%98%E8%AE%A4%E5%BC%80%E5%90%AF%E6%9C%80%E9%AB%98%E7%94%BB%E8%B4%A8
// @homepage https://greasyfork.org/zh-CN/scripts/473553-youtube%E9%BB%98%E8%AE%A4%E5%BC%80%E5%90%AF%E6%9C%80%E9%AB%98%E7%94%BB%E8%B4%A8
// @downloadURL none
// ==/UserScript==
(function(){
function t_stop(num){
return new Promise((resolve)=>{setTimeout(resolve, num)})
}
async function set_max_voice_px() {
if (j_num>50){
return
}
let player = document.querySelector('div[id="movie_player"]')
if (player && player.getAvailableQualityLevels && player.getAvailableQualityLevels().length > 0){
await t_stop(500)
let v_list = player.getAvailableQualityLevels()
let user_articulation = localStorage.getItem('user_articulation')
// 根据本地数据进行判断
if (!user_articulation){
player.setPlaybackQualityRange(v_list[0])
}
else{
if (v_list.includes(user_articulation)){
player.setPlaybackQualityRange(user_articulation)
}
else{
let original_data = ['tiny', 'small', 'medium', 'large', 'hd720', 'hd1080', 'hd1440', 'hd2160', 'hd2880', 'highres'].reverse()
let u_index = original_data.indexOf(user_articulation)
let need_list = original_data.slice(u_index+1)
if (need_list.length === 0){
player.setPlaybackQualityRange(v_list[0])
j_num = 0
// 保存清晰度
player.addEventListener('onPlaybackQualityChange', (e)=>{
localStorage.setItem('user_articulation', e)
})
return
}
for (let a of need_list){
if (v_list.includes(a)){
player.setPlaybackQualityRange(a)
}
}
}
}
j_num = 0
// 保存清晰度
player.addEventListener('onPlaybackQualityChange', (e)=>{
localStorage.setItem('user_articulation', e)
})
}
else{
j_num++
await t_stop(100)
set_max_voice_px()
}
}
function list_judgment() {
set_max_voice_px()
//循环检查页面是否改变
setInterval(() => {
new_url = String(window.location.href)
if (new_url != url){
j_num = 0
set_max_voice_px()
url = new_url
}
}, 1000);
}
//开始运行程序
var j_num = 0
var new_url = ''
var url = String(window.location.href)
list_judgment()
})()