自研 - 哔哩哔哩 - 分 P 连播

连续播放多段(Part)视频。

当前为 2024-06-10 提交的版本,查看 最新版本

// ==UserScript==
// @name               自研 - 哔哩哔哩 - 分 P 连播
// @name:en_US         Self-made - BiliBili - Continuous playback of multiple-part videos
// @description        连续播放多段(Part)视频。
// @description:en_US  Continuous playback of multiple video parts.
// @version            1.0.0
// @author             CPlayerCHN
// @license            MulanPSL-2.0
// @namespace          https://www.gitlink.org.cn/CPlayerCHN
// @match              https://www.bilibili.com/video/*
// @run-at             document-end
// @noframes
// ==/UserScript==

(function() {
    'use strict';

    // 等待 5 秒
    setTimeout(() => {

        // 如果「分段视频清单」存在就继续往下执行,不然自动连播开启就关闭它。
        if(document.querySelector(".base-video-sections-v1, #multi_page")) {

            // 定义「分段信息」变量。
            const partInfo = document.querySelector(".base-video-sections-v1 .cur-page, #multi_page .cur-page").textContent.replaceAll(/\(|\)/g, "").split("/");

            // 如果不是最终分段就开启自动连播,如果是且自动连播开启就关闭它。
            if(partInfo[0] !== partInfo[1]) {

                // 开启自动连播。
                document.querySelector(".next-button .switch-button").click();

                // 弹出消息栏提示是否需要取消自动连播,如果 10 不撤销就移除消息栏。
                if(!document.querySelector("#CPL-snackbar")) {

                    // 把消息栏写入网页。
                    document.body.insertAdjacentHTML("beforeend", "<style id=\"CPL-snackbar-style\">#CPL-snackbar { position: fixed; z-index: 100001; right: 24px; bottom: -48px; height: 48px; padding: 0 12px 0 24px; border-radius: 2px; background-color: #323232; display: flex; align-items: center; font-size: 14px; user-select: none; transition: bottom 0.3s cubic-bezier(0, 0, 0.2, 1) 0s; } #CPL-snackbar.display { bottom: 84px; } #CPL-snackbar span { color: #FFFFFF; } #CPL-snackbar button { border: none; background: transparent; height: 36px; padding: 0 16px; border-radius: 2px; color: var(--brand_blue); transition: background-color 0.3s cubic-bezier(0, 0, 0.2, 1) 0s; } #CPL-snackbar button:hover { background-color: rgba(255, 255, 255, 0.1); } #CPL-snackbar button:active { background-color: rgba(255, 255, 255, 0.3); }</style><nav id=\"CPL-snackbar\"><span>检测到分 P 视频,已为您开启自动连播。</span><button onclick='document.querySelector(\".next-button .switch-button\")?.click(); document.querySelector(\"#CPL-snackbar\").classList.remove(\"display\"); setTimeout(() => { document.querySelector(\"#CPL-snackbar\").remove(); }, 300);'>撤销</button></nav>");

                    // 定义「消息栏」变量。
                    const snackbar = document.querySelector("#CPL-snackbar");

                    // 展示消息栏。
                    snackbar.classList.add("display");

                    // 10 秒后移除消息栏。
                    setTimeout(() => {

                        snackbar.classList.remove("display");
                        setTimeout(() => {
                            snackbar.remove();
                            document.querySelector("#CPL-snackbar-style").remove();
                        }, 300);

                    }, 9700);

                }

            }else if(document.querySelector(".next-button .switch-button").classList.contains("on")) {

                // 关闭自动连播。
                document.querySelector(".next-button .switch-button").click();

            }


        }else if(document.querySelector(".next-button .switch-button").classList.contains("on")) {

            // 关闭自动连播。
            document.querySelector(".next-button .switch-button").click();

        }

    }, 5000);

})();

QingJ © 2025

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