Passe toutes les publicités YouTube instantanément et supprime les bannières/superpositions. Bloqueur de publicité totalement indétectable. Profitez de playlists et vidéos YouTube sans publicité ni interruptions. Supprime les avertissements de détection de bloqueur de publicité.
// ==UserScript== // @name No Ads - YouTube AdBlocker | Ad Skipper | Free YouTube Music | Ad Remover | Remove Adblock Warning // @namespace http://tampermonkey.net/ // @version 3.95 // @auuthor gv3dev // @description Skips all YouTube ads instantly and removes banners/overlays. Completely undetectable ad blocker. Enjoy ad-free YouTube music playlists and videos with no interruptions. Removes adblock detection warnings. // @description:de Überspringt alle YouTube-Werbung sofort und entfernt Banner/Overlays. Völlig unentdeckbarer Werbeblocker. Genießen Sie werbefreie YouTube-Musik-Playlists und Videos ohne Unterbrechungen. Entfernt Adblock-Erkennungswarnungen. // @description:es Omite todos los anuncios de YouTube al instante y elimina banners/superposiciones. Bloqueador de anuncios completamente indetectable. Disfruta de listas de reproducción y videos de música de YouTube sin interrupciones. Elimina las advertencias de detección de Adblock. // @description:fr Passe toutes les publicités YouTube instantanément et supprime les bannières/superpositions. Bloqueur de publicité totalement indétectable. Profitez de playlists et vidéos YouTube sans publicité ni interruptions. Supprime les avertissements de détection de bloqueur de publicité. // @description:ja すべてのYouTube広告を即座にスキップし、バナー/オーバーレイを削除します。完全に検出されない広告ブロッカー。広告なしでYouTubeの音楽プレイリストとビデオを中断なく楽しめます。Adblock検出警告を削除します。 // @description:zh 即时跳过所有YouTube广告并删除横幅/覆盖层。完全无法检测到的广告拦截器。享受无广告的YouTube音乐播放列表和视频,无干扰。移除广告拦截检测警告。 // @description:it Salta tutti gli annunci di YouTube istantaneamente e rimuove banner/sovrapposizioni. Blocco annunci completamente non rilevabile. Goditi playlist e video musicali di YouTube senza interruzioni pubblicitarie. Rimuove gli avvisi di rilevamento di Adblock. // @description:pt Ignora todos os anúncios do YouTube instantaneamente e remove banners/sobreposições. Bloqueador de anúncios completamente indetectável. Desfrute de playlists e vídeos de música do YouTube sem interrupções. Remove os avisos de detecção de Adblock. // @description:ru Мгновенно пропускает все объявления на YouTube и удаляет баннеры/наложения. Полностью незаметный блокировщик рекламы. Наслаждайтесь плейлистами и видео на YouTube без рекламы и перерывов. Удаляет предупреждения о блокировке рекламы. // @description:ko 모든 YouTube 광고를 즉시 건너뛰고 배너/오버레이를 제거합니다. 완전히 탐지되지 않는 광고 차단기. 광고 없이 중단 없는 YouTube 음악 재생목록과 동영상을 즐기십시오. Adblock 감지 경고를 제거합니다. // @description:hi सभी YouTube विज्ञापनों को तुरंत स्किप करें और बैनर/ओवरले हटा दें। पूरी तरह से अदृश्य विज्ञापन ब्लॉकर। बिना किसी रुकावट के विज्ञापन-मुक्त YouTube संगीत प्लेलिस्ट और वीडियो का आनंद लें। Adblock पहचान चेतावनियों को हटा देता है। // @match https://*.youtube.com/* // @match https://www.youtube-nocookie.com/* // @icon https://i.ibb.co/ZMwwmXm/Screenshot-2024-08-22-at-12-05-51-AM-removebg-preview.png // @grant none // @license MIT // ==/UserScript== let ogVolume = 1, pbRate = 1, manualPause = false; document.addEventListener('keydown', (event) => { if (event.code === 'Space') { manualPause = true; } }); document.addEventListener('play', () => { manualPause = false; }); document.addEventListener('pause', () => { manualPause = true; }); const manip = (actions) => { actions.forEach(({ selector, action, func }) => { let elements = document.querySelectorAll(selector); elements.forEach(element => { if(element!==null && element!==undefined){ if(element.style.display!=="none"){ if (action === 'remove') { element.remove(); } else if (action === 'hide') { element.style.display = "none"; } else if (action === 'click') { element.click(); } else if (action === 'remove-run') { element.remove(); eval(func); } } } }); }); }; const playVid = () => { const video = document.querySelector("video"); if(video!==null){ if(!video.playing && !manualPause && video.currentTime<1){ video.play(); } } } Object.defineProperty(HTMLMediaElement.prototype, 'playing', { get: function(){ return !!(this.currentTime > 0 && !this.paused && !this.ended && this.readyState > 2); } }); /*const removeShorts = () => { if(should_Remove_Shorts == true){ document.querySelectorAll(".style-scope.ytd-rich-shelf-renderer #title-container").forEach((shelf) => { if (shelf.innerText === "Shorts") { shelf.closest('ytd-rich-shelf-renderer').remove(); } }); } };*/ const simulateClick = (element)=>{ try{ const mouseDownEvent = new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window, clientX: element.getBoundingClientRect().left, clientY: element.getBoundingClientRect().top, button: 0 }); element.dispatchEvent(mouseDownEvent); const mouseUpEvent = new MouseEvent('mouseup', { bubbles: true, cancelable: true, view: window, clientX: element.getBoundingClientRect().left, clientY: element.getBoundingClientRect().top, button: 0 }); element.dispatchEvent(mouseUpEvent); const clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true, view: window, clientX: element.getBoundingClientRect().left, clientY: element.getBoundingClientRect().top, button: 0 }); element.dispatchEvent(clickEvent); }catch(e){} } const simulateNativeTouch = (element) => { try{ const touchPoint = new Touch({ identifier: Date.now(), target: element, clientX: 12, clientY: 34, radiusX: 56, radiusY: 78, rotationAngle: 0, force: 1 }); const touchStart = new TouchEvent('touchstart', { bubbles: true, cancelable: true, view: window, touches: [touchPoint], targetTouches: [touchPoint], changedTouches: [touchPoint] }); element.dispatchEvent(touchStart); const touchEnd = new TouchEvent('touchend', { bubbles: true, cancelable: true, view: window, touches: [], targetTouches: [], changedTouches: [touchPoint] }); element.dispatchEvent(touchEnd); }catch(e){} }; const rev = ` ytd-rich-item-renderer:has(ytd-ad-slot-renderer), #player-ads, #panels:has(ytd-ads-engagement-panel-content-renderer), ytd-ad-slot-renderer, #masthead-ad, ytd-reel-video-renderer:has(ytd-ad-slot-renderer), tp-yt-paper-dialog:has(#feedback.ytd-enforcement-message-view-model), .yt-mealbar-promo-renderer { visibility: hidden; height: 0; margin: 0; padding: 0; } `; const styleSheet = document.createElement('style'); styleSheet.type = 'text/css'; styleSheet.innerText = rev; document.head.appendChild(styleSheet); setInterval(() => { try{ manip([ { selector: "tp-yt-paper-dialog:has(#feedback.ytd-enforcement-message-view-model)", action: 'remove-run', func: playVid()}, { selector: ".ytp-ad-overlay-close-button", action: 'click' }, { selector: ".style-scope.ytd-watch-next-secondary-r###lts-renderer.sparkles-light-cta.GoogleActiveViewElement", action: 'hide' }, { selector: ".style-scope.ytd-item-section-renderer.sparkles-light-cta", action: 'hide' }, { selector: ".ytp-ad-message-container", action: 'hide' }, { selector: ".style-scope.ytd-companion-slot-renderer", action: 'remove' }, { selector: "#masthead-ad", action: 'remove' }, { selector: "ytd-ad-slot-renderer", action: 'remove' }, { selector: "ytd-reel-shelf-renderer", action: 'remove' }, { selector: "ytd-player-legacy-desktop-watch-ads-renderer", action: 'hide'}, { selector: ".ytp-ad-player-overlay-layout", action: 'hide' }, { selector: "ytd-reel-video-renderer:has(.ytd-ad-slot-renderer)", action: "remove"}, { selector: "ytd-in-feed-ad-layout-renderer", action: 'remove' }, { selector: "ytd-engagement-panel-section-list-renderer[target-id='engagement-panel-ads']", action: 'hide' }, { selector: "ytd-popup-container:has(a[href='/premium'])", action: 'hide' }, { selector: "yt-mealbar-promo-renderer", action: 'hide' } ]); let videoStream = document.querySelector("video"), skipAdButton = document.querySelector(`.ytp-skip-ad-button,.ytp-ad-skip-button,.ytp-ad-skip-button-modern`); if (videoStream) { let ad = document.querySelector(".video-ads.ytp-ad-module").firstChild || document.querySelector(".ytp-exp-ppp-update.ad-created.ad-showing.ad-interrupting"); if (ad !== null) { //console.log("ad not null") //console.log(ad); if(ad.childElementCount > 0){ //console.log("ad children higher than 0") //console.log("skipping with speed") videoStream.playbackRate = 16; if (!isNaN(videoStream.duration) && isFinite(videoStream.duration) && !isNaN(videoStream.currentTime) && isFinite(videoStream.currentTime)) { videoStream.currentTime += videoStream.duration; } videoStream.muted = true; } else{ pbRate = videoStream.playbackRate; videoStream.muted = false; } }else{ pbRate = videoStream.playbackRate; videoStream.muted = false; } } if (skipAdButton !== null) { skipAdButton.click(); simulateClick(skipAdButton); simulateNativeTouch(skipAdButton); console.log("skipAd button clicked."); } }catch(e){} }, 10);