您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Fastest + Lightest YouTube AdBlocker which actually works
当前为
- // ==UserScript==
- // @name Bye Bye YouTube Ads - (Undetected by YouTube's anti-AdBlocker)
- // @version 2.0
- // @description Fastest + Lightest YouTube AdBlocker which actually works
- // @author DishantX
- // @match *://www.youtube.com/*
- // @exclude *://www.youtube.com/*/music*
- // @exclude *://music.youtube.com/*
- // @exclude *://m.youtube.com/*
- // @icon https://tenor.com/view/manifest-meditate-pepe-gif-12464108004541162266
- // @icon64 https://tenor.com/view/manifest-meditate-pepe-gif-12464108004541162266
- // @license MIT
- // @namespace https://greasyfork.org/users/1467023
- // ==/UserScript==
- (() => {
- 'use strict';
- // 1. Inject only ad-overlay CSS (no panel removals).
- const style = document.createElement('style');
- style.textContent = [
- '.ytp-ad-overlay.ytp-overlay-loading', // in-video overlays
- '.ytp-featured-product' // featured product promos
- ].join(',') + ' { display: none !important; }';
- document.head.appendChild(style);
- // 2. Click “Skip Ad” when it appears
- function clickSkip() {
- const btn = document.querySelector('button.ytp-ad-skip-button, button.ytp-ad-skip-button-modern');
- if (btn) btn.click();
- return !!btn;
- }
- // 3. Jump past unskippable ads
- function jumpAd() {
- const v = document.querySelector('video');
- if (v && isFinite(v.duration)) v.currentTime = v.duration;
- }
- // 4. Observe only the player’s 'ad-showing' class
- const player = document.getElementById('movie_player');
- if (player) {
- const obs = new MutationObserver(muts => {
- if (player.classList.contains('ad-showing')) {
- if (!clickSkip()) jumpAd();
- }
- });
- obs.observe(player, { attributes: true, attributeFilter: ['class'] });
- }
- })();