🏠 Home 

Bilibili - 自动切换直播画质至最高画质

自动切换Bilibili直播画质至最高画质 | V0.8 移除多余的async


Install this script?
// ==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);
})();