关闭B站自动播放下一个视频(自动切集)

解决B站恼人的单个视频自动播放问题,只对HTML5播放器生效。如果是视频集则自动连续播放,如果是单个视频则不自动连续播放。

当前为 2021-05-06 提交的版本,查看 最新版本

// ==UserScript==
// @name         关闭B站自动播放下一个视频(自动切集)
// @namespace    https://www.tampermonkey.net/
// @version      0.4
// @description  解决B站恼人的单个视频自动播放问题,只对HTML5播放器生效。如果是视频集则自动连续播放,如果是单个视频则不自动连续播放。
// @author       ProDark
// @match        https://www.bilibili.com/*
// @grant        none
// @run-at       document-end
// ==/UserScript==


(function() {
    'use strict';

    // Your code here...



    function check_list_exist(){
        try
        {
            var tempLists = document.getElementsByTagName("div");
            for(var i in tempLists){
                var theAttrClass = tempLists[i].getAttribute("class");
                if( theAttrClass == "plp-r" || theAttrClass == "cur-list" || theAttrClass == "video-sections")
                {//判断是不是列表形连续剧
                    return true;
                }
            }
            return false;
        }
        catch(err)
        {
            return false;
        }
    }

    function ClickButton(Target){
        var e = document.createEvent("MouseEvents");
        e.initMouseEvent("click", true, false);
        Target.dispatchEvent(e);
    }

    function AutoNextON(){
        var divs = document.getElementsByTagName("span");
        for(var i=0;i<divs.length;i++){
            if( divs[i].innerText == "自动切集")
            {
                ClickButton(divs[i]);
                break;
            }
        }
    }
    function AutoNextOFF(){
        var divs = document.getElementsByTagName("span");
        for(var i=0;i<divs.length;i++){
            if( divs[i].innerText == "播完暂停")
            {
                ClickButton(divs[i]);
                break;
            }
        }
    }


    window.onload = function(){
        setTimeout(function(){
            //设置按钮
            var buttons = document.getElementsByTagName("button");
            for(var i=0;i<buttons.length;i++){
                if( buttons[i].getAttribute("class") == "bilibili-player-iconfont bilibili-player-iconfont-setting")
                {
                    var e = document.createEvent("MouseEvents");
                    e.initMouseEvent("mouseover", true, false);
                    buttons[i].dispatchEvent(e);

                    var e2 = document.createEvent("MouseEvents");
                    e2.initMouseEvent("mouseout", true, false);
                    buttons[i].dispatchEvent(e2);
                    //模拟鼠标放到按钮并移开,使其加载 目标按钮节点

                    break;
                }
            }
            //成功加载

            if(check_list_exist()){
                AutoNextON();
            }
            else{
                AutoNextOFF();
            }

        },10000);//延迟10秒执行....我也不知道怎么确定页面加载完了.......
    }

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址