抖音网页版直播自动播放

// ==UserScript==
// @name        抖音网页版直播自动播放
// @namespace    http://tampermonkey.net/
// @version      2026-05-22
// @description  try to take over the world!
// @author       You
// @match        https://live.douyin.com/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=douyin.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
})();
抖音网页版在看直播的时候会自动暂停,监测到暂停后马上点击继续播放
<div class="tPjpbR8_"><div class="EiGv3P09"><div class="C4DUhSTs"><div class="KQTNS6Ni">长时间无操作,已暂停播放</div><div class="Lp_3msye">累计节能<span class="eqq6ZMBQ">2</span>分钟</div></div><div class="elw1KV8O"><div class="JL05k7eS OG51D9OO NzyTD8Fa">继续播放</div><div class="JL05k7eS">使用客户端免弹窗</div></div></div></div>
// ==UserScript==
// @name        抖音网页版直播自动播放
// @namespace    http://tampermonkey.net/
// @version      2026-05-22
// @description  检测长时间无操作暂停弹窗,自动点击继续播放
// @author       You
// @match        https://live.douyin.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=douyin.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    setInterval(() => {
        // 匹配继续播放按钮
        const resumeBtn = document.querySelector('.JL05k7eS.OG51D9OO.NzyTD8Fa');
        if(resumeBtn) resumeBtn.click();
        
        // 兜底视频唤醒
        const video = document.querySelector('video');
        if(video?.paused) video.play().catch(()=>{});
    }, 500);
})();

千问

针对你遇到的抖音网页版直播自动暂停的问题,这通常是平台为了“节能”而设置的策略(如你看到的提示“长时间无操作,已暂停播放”)。

要实现“监测到暂停后马上点击继续播放”,我们需要修改你的油猴脚本,通过定时检测弹窗并模拟点击来实现。

核心解决方案

抖音的暂停机制通常有两种:

  1. 空闲暂停:鼠标长时间不动,页面上会覆盖一层“继续播放”的按钮。
  2. 播放器暂停:视频流本身被暂停(video.paused 为 true)。

以下脚本涵盖了这两种情况的修复逻辑:

1. 完善后的油猴脚本代码

请将你代码编辑器中的内容替换为以下代码:

// ==UserScript==
// @name         抖音网页版直播自动播放
// @namespace    http://tampermonkey.net/
// @version      2026-05-22
// @description  解决抖音网页版直播因“长时间无操作”而暂停的问题,自动点击继续播放。
// @author       Qwen
// @match        https://live.douyin.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=douyin.com
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    console.log('[抖音自动播放] 脚本已启动');

    // --- 核心修复逻辑 ---

    // 1. 修复策略A:监听视频元素,如果发现视频暂停了,尝试播放
    function monitorVideoPlay() {
        const video = document.querySelector('video');
        if (video && video.paused) {
            console.log('[抖音自动播放] 检测到视频已暂停,尝试恢复播放...');
            video.play().catch(e => console.warn('播放失败:', e));
        }
    }

    // 2. 修复策略B:移除“长时间无操作”的遮罩层(最常见原因)
    function removePauseMask() {
        // 查找包含“长时间无操作”或“继续播放”文字的父级容器
        const maskText = document.querySelector('.KQTNS6Ni, .eqq6ZMBQ');
        if (maskText) {
            console.log('[抖音自动播放] 检测到节能暂停遮罩,正在移除...');
            
            // 方法1:直接移除父级遮罩层(通常类名为 tPjpbR8_ 或类似)
            const maskParent = maskText.closest('.tPjpbR8_');
            if (maskParent) {
                maskParent.remove();
                console.log('[抖音自动播放] 遮罩层已移除');
            }
            
            // 方法2:如果遮罩还在,尝试点击“继续播放”按钮
            const continueBtn = document.querySelector('.JL05k7eS');
            if (continueBtn && continueBtn.textContent.includes('继续播放')) {
                continueBtn.click();
                console.log('[抖音自动播放] 点击了继续播放按钮');
            }
        }
    }

    // --- 定时执行 ---
    
    // 每隔 1 秒检测一次遮罩层(针对页面静止检测)
    setInterval(() => {
        removePauseMask();
    }, 1000);

    // 每隔 5 秒检测一次视频播放状态
    setInterval(() => {
        monitorVideoPlay();
    }, 5000);

    // --- 额外防护:模拟用户活动 ---
    
    // 模拟鼠标移动,欺骗“长时间无操作”的检测机制
    function simulateUserActivity() {
        const event = new MouseEvent('mousemove', {
            view: window,
            bubbles: true,
            cancelable: true
        });
        document.dispatchEvent(event);
    }

    // 每隔 30 秒模拟一次鼠标移动
    setInterval(simulateUserActivity, 30000);

})();

代码关键点解析

  1. DOM 结构分析
    • 根据你提供的 HTML 片段,暂停提示的类名包含 KQTNS6Ni(显示“长时间无操作...”)和 JL05k7eS(按钮)。
    • 脚本使用 maskText.closest('.tPjpbR8_') 来定位并移除整个遮罩层的父容器。如果类名发生变化,脚本也会尝试直接点击“继续播放”按钮。
  2. 双重保险机制
    • 定时器 1 (1秒/次):高频检测 DOM 结构,一旦出现“继续播放”的遮罩层,立即移除或点击。
    • 定时器 2 (5秒/次):检测 <video> 标签的 paused 状态,如果视频流本身暂停了,强制调用 play()
  3. 模拟用户行为
    • 脚本中包含 simulateUserActivity 函数,它会每隔 30 秒模拟一次鼠标移动事件。这可以有效防止抖音检测到“用户挂机”从而触发暂停逻辑。

安装与使用

  1. 确保你已安装 Tampermonkey(油猴)浏览器扩展。
  2. 点击浏览器工具栏的 Tampermonkey 图标,选择“添加新脚本”。
  3. 删除编辑器内所有内容,粘贴上面的代码。
  4. Ctrl+S 保存。
  5. 打开抖音直播网页版,脚本会自动运行。

如果发现脚本失效(例如抖音更新了类名),你可以按 F12 打开控制台,查看脚本输出的日志(console.log),根据新的 HTML 结构微调代码中的类名(如 .KQTNS6Ni)。