隐藏youtube显示的google广告,自动点击"skip ad"
当前为
// ==UserScript==
// @name Hide youtube google ad
// @name:zh-CN 隐藏youtube google广告
// @namespace vince.youtube
// @version 2.4.6
// @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
// ==/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 closeAd = function (){
var css = `
.video-ads,
.ytp-ad-overlay-container,
.ytp-ad-overlay-image,
.ytp-ad-skip-button-container,
.ytp-ad-preview-container,
.ytp-ad-message-container,
#masthead-ad,
#player-ads,
ytd-display-ad-renderer,
ytd-companion-slot-renderer,
.ytd-video-masthead-ad-v3-renderer,
.style-scope.ytd-in-feed-ad-layout-renderer,
.ytd-banner-promo-renderer,
#related ytd-promoted-sparkles-web-renderer,
.ytd-promoted-sparkles-text-search-renderer,
.ytd-display-ad-renderer,
.ytd-statement-banner-renderer,
#related ytd-compact-promoted-video-renderer {
display: none!important;
}
`;
// ... rest of closeAd function remains the same ...
};
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();
})();