// ==UserScript== // @name Hide youtube google ad // @name:zh-CN 隐藏youtube google广告 // @namespace vince.youtube // @version 2.4.7 // @description hide youtube google ad,auto click "skip ad" // @description:zh-CN 隐藏youtube显示的google广告,自动点击"skip ad" // @author vince ding // @match https://*.youtube.com/* // @grant GM_xmlhttpRequest // @grant GM_info // @grant GM_getValue // @grant unsafeWindow // @run-at document-start // @connect googlevideo.com // @downloadURL none // ==/UserScript== (function() { 'use strict'; var closeAd=function (){ var css = '.video-ads,.video-ads .ad-container .adDisplay,#player-ads,.ytp-ad-module,.ytp-ad-image-overlay,#panels"{ display: none!important; }', head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } head.appendChild(style); }; var skipInt; var log=function(msg){ unsafeWindow.console.log (msg); }; var skipAd = function(){ // 更新选择器列表 const skipSelectors = [ 'button.ytp-ad-skip-button', 'button.ytp-ad-skip-button-modern', '.ytp-ad-skip-button-container button', '.ytp-ad-skip-button-slot button', 'button[class*="skip"]', 'button[class*="Skip"]', '.videoAdUiSkipButton', '[data-skip-button]' ]; // 尝试查找跳过按钮 const skipbtn = skipSelectors.reduce((found, selector) => found || document.querySelector(selector), null); if(skipbtn){ try { // 检测是否在广告中 const isInAd = document.querySelector('.video-ads') || document.querySelector('.ytp-ad-player-overlay') || document.querySelector('[class*="ad-showing"]'); if(isInAd) { // 尝试直接修改视频时间 const video = document.querySelector('video'); if(video) { video.currentTime = video.duration || 0; video.playbackRate = 16; } // 触发跳过按钮 skipbtn.removeAttribute('disabled'); skipbtn.click(); } } catch(e) { log("Skip error: " + e); } } setTimeout(() => { window.requestAnimationFrame(skipAd); }, 500); }; closeAd(); skipAd(); })();