You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求绕过YouTube限制自动点击「跳过广告」按钮的JS解决方案

YouTube自动跳过广告按钮失效后的解决方案思路

近期YouTube加大了对广告拦截工具的打击力度,从2024年1月17日起,所有自动点击「跳过广告」按钮的方法均被完全禁用。以下是我尝试过但无效的方案,以及可行的解决思路参考:

已尝试但无效的方案

  • 直接模拟按钮点击(含原生click()和手动触发MouseEvent):
const click = (clazz) => {
    const buttons = document.getElementsByClassName(clazz);
    for (const button of buttons) {
        console.log(button)
        button.click()
        button.dispatchEvent(
            new MouseEvent('click')
            );
    }
};
click("ytp-ad-skip-button-modern")
  • 模拟mousedown/up、pointerdown/up事件的等效代码,无效果。
  • 模拟鼠标悬停(仅改变按钮透明度,无法触发跳过):
const mouseover = (clazz) => {
    const buttons = document.getElementsByClassName(clazz);
    for (const button of buttons) {
        console.log(button)
        button.dispatchEvent(
            new MouseEvent('mouseover')
            );
    }
};
mouseover('ytp-ad-skip-button-modern')

可行思路参考

  1. 模拟完整用户交互链路
    YouTube可能验证点击的完整操作流程,而非单一事件。按真实用户操作顺序触发事件,并添加微小延迟模拟人类操作间隔:
const simulateFullClick = (element) => {
    const events = ['mouseover', 'mousedown', 'mouseup', 'click'];
    events.forEach((eventType, index) => {
        setTimeout(() => {
            element.dispatchEvent(new MouseEvent(eventType, {
                bubbles: true,
                cancelable: true,
                view: window
            }));
        }, index * 150);
    });
};

const skipButtons = document.getElementsByClassName('ytp-ad-skip-button-modern');
for (const btn of skipButtons) {
    simulateFullClick(btn);
}
  1. 跳过按钮检测,直接操控播放状态
    跳过广告本质是切换到正片播放,可尝试逆向YouTube前端代码,找到控制播放的核心实例(如ytplayer相关对象),调用其内部的跳过广告方法。此方法需跟进YouTube版本更新,存在失效风险。

  2. 结合鼠标位置模拟真实点击
    部分检测会验证点击时鼠标是否在按钮区域内,先将鼠标移动到按钮中心再触发点击:

const moveMouseToElement = (element) => {
    const rect = element.getBoundingClientRect();
    const x = rect.left + rect.width / 2;
    const y = rect.top + rect.height / 2;
    
    const moveEvent = new MouseEvent('mousemove', {
        clientX: x,
        clientY: y,
        bubbles: true,
        view: window
    });
    document.dispatchEvent(moveEvent);
};

const skipBtn = document.querySelector('.ytp-ad-skip-button-modern');
if (skipBtn) {
    moveMouseToElement(skipBtn);
    setTimeout(() => simulateFullClick(skipBtn), 200);
}
  1. 使用浏览器调试API模拟点击
    若基于Chrome扩展开发,可使用chrome.debugger API从浏览器层面触发真实点击,这种方式的事件更难被检测,但需要处理扩展权限和调试API的使用逻辑。

内容的提问来源于stack exchange,提问作者Pet'li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:13:12