抖音网页版直播自动播放
// ==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);
})();
千问
针对你遇到的抖音网页版直播自动暂停的问题,这通常是平台为了“节能”而设置的策略(如你看到的提示“长时间无操作,已暂停播放”)。
要实现“监测到暂停后马上点击继续播放”,我们需要修改你的油猴脚本,通过定时检测弹窗并模拟点击来实现。
核心解决方案
抖音的暂停机制通常有两种:
- 空闲暂停:鼠标长时间不动,页面上会覆盖一层“继续播放”的按钮。
- 播放器暂停:视频流本身被暂停(
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);
})();
代码关键点解析
- DOM 结构分析:
- 根据你提供的 HTML 片段,暂停提示的类名包含
KQTNS6Ni(显示“长时间无操作...”)和JL05k7eS(按钮)。 - 脚本使用
maskText.closest('.tPjpbR8_')来定位并移除整个遮罩层的父容器。如果类名发生变化,脚本也会尝试直接点击“继续播放”按钮。
- 根据你提供的 HTML 片段,暂停提示的类名包含
- 双重保险机制:
- 定时器 1 (1秒/次):高频检测 DOM 结构,一旦出现“继续播放”的遮罩层,立即移除或点击。
- 定时器 2 (5秒/次):检测
<video>标签的paused状态,如果视频流本身暂停了,强制调用play()。
- 模拟用户行为:
- 脚本中包含
simulateUserActivity函数,它会每隔 30 秒模拟一次鼠标移动事件。这可以有效防止抖音检测到“用户挂机”从而触发暂停逻辑。
- 脚本中包含
安装与使用
- 确保你已安装 Tampermonkey(油猴)浏览器扩展。
- 点击浏览器工具栏的 Tampermonkey 图标,选择“添加新脚本”。
- 删除编辑器内所有内容,粘贴上面的代码。
- 按
Ctrl+S保存。 - 打开抖音直播网页版,脚本会自动运行。
如果发现脚本失效(例如抖音更新了类名),你可以按 F12 打开控制台,查看脚本输出的日志(console.log),根据新的 HTML 结构微调代码中的类名(如 .KQTNS6Ni)。