自动切换Bilibili直播画质至最高画质 | V0.8 移除多余的async
// ==UserScript== // @name Bilibili - 自动切换直播画质至最高画质 // @namespace https://bilibili.com/ // @version 0.8 // @description 自动切换Bilibili直播画质至最高画质 | V0.8 移除多余的async // @license GPL-3.0 // @author DD1969 // @match https://live.bilibili.com/* // @icon https://www.bilibili.com/favicon.ico // @grant unsafeWindow // @noframes // ==/UserScript== (async function() { 'use strict'; // jump to actual room if live streaming is nested setInterval(() => { const nestedPage = document.querySelector('iframe[src*=blanc]'); if (nestedPage) unsafeWindow.location.href = nestedPage.src; }, 1000); // hide the loading gif const styleElement = document.createElement('style'); styleElement.textContent = `.web-player-loading { opacity: 0; }`; document.head.appendChild(styleElement); // make sure the player is ready await new Promise(resolve => { const timer = setInterval(() => { if ( unsafeWindow.livePlayer && unsafeWindow.livePlayer.getPlayerInfo && unsafeWindow.livePlayer.getPlayerInfo().playurl && unsafeWindow.livePlayer.switchQuality ) { clearInterval(timer); resolve(); } }, 1000); }); // get initial pathname of video source and number of highest quality const initialPathname = new URL(unsafeWindow.livePlayer.getPlayerInfo().playurl).pathname; const highestQualityNumber = unsafeWindow.livePlayer.getPlayerInfo().qualityCandidates[0].qn; // switch quality setInterval(() => { const currentPathname = new URL(unsafeWindow.livePlayer.getPlayerInfo().playurl).pathname; const currentQualityNumber = unsafeWindow.livePlayer.getPlayerInfo().quality; if (currentPathname === initialPathname || currentQualityNumber !== highestQualityNumber) { unsafeWindow.livePlayer.switchQuality(highestQualityNumber); } }, 1000); })();