您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Automatically hide and mute YouTube ads while playing and hide YouTube Ad Slots.
当前为
// ==UserScript== // @name FuckAds - Skip YouTube ads // @namespace http://tampermonkey.net/ // @version 1.3.1 // @description Automatically hide and mute YouTube ads while playing and hide YouTube Ad Slots. // @author John Doe // @match *://www.youtube.com/* // @grant none // @license MIT // ==/UserScript== (function () { const messageDiv = document.createElement('div') function createMessage () { messageDiv.style.cssText = 'position: fixed; bottom: 50%; left: 50%; background: red; color: white; padding: 5px; z-index: 999;' messageDiv.textContent = 'Ad muted and hidden by FuckAds, will be skipped ASAP if possible, if not you just need to wait. Keep your mind ad-free.' } function hideAdsSlot () { const youTubeAdsSlot = document.querySelectorAll('ytd-ad-slot-renderer') if (youTubeAdsSlot) { for (let i = 0; i < youTubeAdsSlot.length; i++) { youTubeAdsSlot[i].innerHTML = 'ADS HIDDEN AND MUTED BY FUCK ADS USER SCRIPT' youTubeAdsSlot[i].style.height = '100%' youTubeAdsSlot[i].style.display = 'flex' youTubeAdsSlot[i].style.color = 'white' youTubeAdsSlot[i].style.justifyContent = 'center'; youTubeAdsSlot[i].style.alignItems = 'center'; } } } setInterval(hideAdsSlot, 3000) function startObserving () { if (location.href.includes('/watch')) { const player = document.getElementById('movie_player') const skipButton = document.querySelector('.ytp-ad-skip-button-text') console.log(player, skipButton) if (skipButton) { skipButton.click() } if (!player) { console.log('Player not detected.') } if (player.classList.contains('ad-showing') && !skipButton) { document.body.appendChild(messageDiv) console.log('Ad detected. No skip button available, you need to wait.') console.log(messageDiv) player.style.opacity = 0 player.mute() createMessage() } if (skipButton) { console.log('Skip button available') } if (!player.classList.contains('ad-showing')) { console.log('No ad detected') player.style.opacity = 1 player.unMute() messageDiv.style.zIndex = '-999' } } } setInterval(startObserving, 2000) })()