Bilibili Auto HD

bilibili自动高清

// ==UserScript==
// @name         Bilibili Auto HD
// @namespace    http://tampermonkey.net/
// @version      0.0.7
// @description  bilibili自动高清
// @author       Formax
// @match        *://www.bilibili.com/video/av*
// @grant        none
// @require      https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';

    const targetRes = 80;
    const richMan = false;
    const autoPlay = true;
    // Choices for targetRes are currently:
    //   116: "1080P60"
    //   74:  "720P60"
    //   112: "1080P+"
    //   ==========rich=======
    //   80:  "1080P"
    //   64:  "720P"
    //   32:  "480P"
    //   15:  "320P"
    //   0:   "auto"

    const richList = ["116","74","112"];

    function isRichQuality(res){
        return richList.indexOf(res)>0;
    }

    function clickHD(){
        var clickChange = false;
        //find all quality <li>
        var resList =$('.bui-select-quality-menu li.bui-select-item');
        for(var i=0;i<resList.length;i++){
            if(!clickChange){
                var res = resList[i].getAttribute("data-value");
                if(isRichQuality(res)&&!richMan){
                    continue;
                }
                else{
                    if(res<=targetRes){
                        //click
                        resList[i].click();
                        clickChange = true;
                    }
                }
            }
        };
    }

    function startPlay(){
        if(autoPlay && $('video.vsc-initialized')[0].paused){
            $('div.bilibili-player-video-btn.bilibili-player-video-btn-start').click()
        }
    }

    function getVisibleStatus(){
        var hidden,statuName;
        if (typeof document.hidden !== "undefined") {
            hidden = "hidden";
            statuName = "visibilityState";
        } else if (typeof document.mozHidden !== "undefined") {
            hidden = "hidden";
            statuName = "mozVisibilityState";
        } else if (typeof document.msHidden !== "undefined") {
            hidden = "hidden";
            statuName = "msVisibilityState";
        } else if (typeof document.webkitHidden !== "undefined") {
            hidden = "hidden";
            statuName = "webkitVisibilityState";
        }
        return document[statuName]=="visible";
    }

    function timerRefresh(){
        if($('video.vsc-initialized')[0] == undefined || $('video.vsc-initialized')[0].paused){
            if(getVisibleStatus()){
                setTimeout(function(){
                    startPlay();
                },888);
            }
            setTimeout(function(){
                timerRefresh();
            },1000);
        }
        else{
            setTimeout(function(){
                clickHD();
            },1000);
        }
    }

    jQuery(document).ready(function () {
        timerRefresh();
    });
})();
长期地址
遇到问题?请前往 GitHub 提 Issues,或加Q群1031348184

赞助商

Fishcpy

广告

Rainyun

注册一下就行

Rainyun

一年攒够 12 元