B站自动点赞

基于定时器的B站自动点赞脚本,支持普通视频、视频合集、稍后再看、专栏。

当前为 2025-08-27 提交的版本,查看 最新版本

// ==UserScript==
// @name         B站自动点赞
// @namespace    http://tampermonkey.net/
// @version      0.0.1
// @description  基于定时器的B站自动点赞脚本,支持普通视频、视频合集、稍后再看、专栏。
// @author       redmh
// @match        https://www.bilibili.com/video/*
// @match        https://www.bilibili.com/list/watchlater*
// @match        https://www.bilibili.com/opus/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=bilibili.com
// @grant        none
// @license      GPLv3
// ==/UserScript==

(function() {
    'use strict';

    // 是否开启DEBUG输出
    const DEBUG = false;
    // 每INTERVALms检查是否需要点赞
    const INTERVAL = 60000;
    // 尝试点赞CHECK_DELAYms后检查是否需要清除定时器
    const CHECK_DELAY = 1000;
    // MAX_MISS次找不到点赞按钮后清除定时器
    const MAX_MISS = 3;
    // 普通视频、视频合集 document.querySelector("#arc_toolbar_report .video-like")
    // 稍后再看 document.querySelector("#playlistToolbar .video-like")
    // 专栏 document.querySelector("#app .like")
    function getLikeButton() {
        return document.querySelector("#arc_toolbar_report > div.video-toolbar-left > div > div:nth-child(1) > div") ||
            document.querySelector("#playlistToolbar > div.video-toolbar-left > div > div:nth-child(1) > div") ||
            document.querySelector("#app > div.opus-detail > div.right-sidebar-wrap > div.side-toolbar.transition > div.side-toolbar__box > div.side-toolbar__action.like");
    }
    // 视频合集 document.querySelector("#mirror-vdcon .video-pod")
    // 稍后再看 document.querySelector("#mirror-vdcon .action-list-container")
    function getVideoList() {
        return document.querySelector("#mirror-vdcon > div.right-container > div > div.rcmd-tab > div.video-pod.video-pod") ||
            document.querySelector("#mirror-vdcon > div.playlist-container--right > div.action-list-container");
    }
    // 视频、专栏
    function isLiked(element) {
        const liked = ["on", "is-active"];
        return liked.some(className => element.classList.contains(className));
    }

    function debugLog(log) {
        if (DEBUG) console.log(log);
    }

    // missedLikeButtonCount次找不到点赞按钮
    let missedLikeButtonCount = 0;

    let intervalId = setInterval(() => {
        const likeButton = getLikeButton();
        const videoList = getVideoList();

        if (likeButton) {
            debugLog("找到了点赞按钮!");

            if (!isLiked(likeButton)) {
                debugLog("尝试点赞!");
                likeButton.click();
            }
            else debugLog("已经点赞!");

            if(!videoList) {
                setTimeout(() => {
                    if (isLiked(likeButton)) {
                        debugLog("清除定时!");
                        clearInterval(intervalId);
                    }
                    else debugLog("继续定时!");
                }, CHECK_DELAY);
            }
            else debugLog("继续定时!");
        }
        else {
            debugLog("没找到点赞按钮!");
            if (++missedLikeButtonCount >= MAX_MISS) {
                debugLog("清除定时!");
                clearInterval(intervalId);
            }
        }
    }, INTERVAL);
})();

QingJ © 2025

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