YouTube 智能广告处理器(AI规避检测)

利用AI策略加速播放广告、模拟跳过,避免触发YouTube广告检测系统。

// ==UserScript==
// @name         YouTube 智能广告处理器(AI规避检测)
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  利用AI策略加速播放广告、模拟跳过,避免触发YouTube广告检测系统。
// @author       OpenAI
// @match        *://www.youtube.com/*
// @grant        GM_xmlhttpRequest
// @grant        GM_getValue
// @grant        GM_setValue
// @connect      openkey.cloud
// @run-at       document-end
// ==/UserScript==

(function () {
  'use strict';

  const OPENKEY_API = 'https://openkey.cloud/v1/chat/completions';
  const API_KEY = 'sk-1ytLNfSpk5R34njTF6286656331c426cAeCb95E266F8D377'; // 可填入你的OpenKey API Key(如 openkey-xxx)

  let dynamicSelectors = [];
  let lastUpdate = 0;

  // AI拉取选择器规则(每小时一次)
  async function updateSelectorsViaAI() {
    if (!API_KEY || Date.now() - lastUpdate < 3600000) return;
    try {
      GM_xmlhttpRequest({
        method: 'POST',
        url: OPENKEY_API,
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `Bearer ${API_KEY}`
        },
        data: JSON.stringify({
          model: "gpt-4",
          messages: [
            {
              role: "user",
              content: "请提供用于屏蔽YouTube广告元素的CSS选择器数组,使用JSON格式返回。不要解释,仅返回形如 ['.ytp-ad-module', ...] 的数组"
            }
          ],
          temperature: 0.5
        }),
        onload: res => {
          try {
            const data = JSON.parse(res.responseText);
            const list = JSON.parse(data.choices[0].message.content);
            if (Array.isArray(list)) {
              dynamicSelectors = list;
              GM_setValue('yt_ad_selectors', list);
              lastUpdate = Date.now();
              console.log('[AI规则] 更新成功:', list);
            }
          } catch (e) {
            console.warn('[AI规则] 解析失败');
          }
        }
      });
    } catch (e) {
      console.warn('[AI规则] 请求失败');
    }
  }

  // 默认备选选择器
  const defaultSelectors = [
    '.ad-showing .video-ads',
    '.ytp-ad-overlay-container',
    '.ytp-ad-player-overlay',
    '.ytp-ad-module',
    '#player-ads'
  ];

  // 应用软隐藏广告逻辑(避免检测)
  function hideAdsSmartly() {
    const selectors = [...defaultSelectors, ...dynamicSelectors];
    selectors.forEach(sel => {
      document.querySelectorAll(sel).forEach(el => {
        el.style.opacity = '0.01';
        el.style.pointerEvents = 'none';
        el.style.position = 'absolute';
        el.style.left = '-9999px';
        el.style.top = '-9999px';
        el.style.zIndex = '0';
      });
    });
  }

  // 智能跳过按钮
  function clickSkipButton() {
    const btn = document.querySelector('.ytp-ad-skip-button');
    if (btn && btn.offsetParent !== null) {
      setTimeout(() => {
        btn.click();
        console.log('[智能跳过] 已跳过广告');
      }, 700 + Math.random() * 1000);
    }
  }

  // 加速播放广告而不跳过 DOM
  function accelerateAds() {
    const video = document.querySelector('video');
    if (video && document.querySelector('.ad-showing')) {
      video.playbackRate = 16;
      video.muted = true;
    } else if (video) {
      video.playbackRate = 1;
      video.muted = false;
    }
  }

  // 记录广告时长
  function detectAdDuration() {
    const video = document.querySelector('video');
    if (video && document.querySelector('.ad-showing')) {
      console.log('[广告时长] 当前广告时长:', video.duration.toFixed(1), '秒');
    }
  }

  // 主循环
  setInterval(() => {
    hideAdsSmartly();
    clickSkipButton();
    accelerateAds();
    detectAdDuration();
  }, 1000);

  // 初始化规则
  (function init() {
    dynamicSelectors = GM_getValue('yt_ad_selectors', []);
    updateSelectorsViaAI();
    setInterval(updateSelectorsViaAI, 3600000); // 每小时更新
    console.log('[AI广告模块] 初始化完成');
  })();
})();

QingJ © 2025

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