Du skal logge ind eller oprette en konto for at kunne fortsætte.
Cache le dialogue "connectez-vous" et le dialogue des cookies. Empêche ces popups de stopper la vidéo.
// ==UserScript== // @name Youtube - dismiss sign-in // @name:fr Youtube - cacher "connectez-vous" // @namespace https://github.com/Procyon-b // @version 0.8.4 // @description Hide the "sign-in" and cookies dialogs. Prevent the dialogs from pausing the video. // @description:fr Cache le dialogue "connectez-vous" et le dialogue des cookies. Empêche ces popups de stopper la vidéo. // @author Achernar // @match https://*.youtube.com/* // @exclude https://www.youtube.com/embed/* // @run-at document-start // @grant none // ==/UserScript== (function(){ "use strict"; function consent(ev,r=document) { var t, e=r.querySelector('#introAgreeButton') || ( (t=r.querySelectorAll('#lightbox[class*="ytd-consent-bump"] a.ytd-button-renderer:not([href])')) && (t.length==1) && (e=t[0]) ) || ( (t=r.querySelectorAll('form button')) && (t.length == 1) && (e=t[0]) ) || ( (t=r.querySelectorAll(':scope form button')) && (t.length == 4) && (e=t[1]) ) /*20220524*/ || ( (t=r.querySelectorAll('ytd-button-renderer > a:not([href]) tp-yt-paper-button[class*="primary"]')) && (t.length == 1) && (e=t[0]) ) || ( (t=r.querySelectorAll('ytd-button-renderer > a:not([href]) tp-yt-paper-button[class*="primary"]')) && (t.length == 2) && (e=t[0]) ); e && e.click(); } if (location.href.startsWith('https://consent.youtube.com/')) { if (document.readyState != 'loading') consent(); else document.addEventListener('DOMContentLoaded', consent); return; } if (window !== window.top) return; function cookies() { var r={}, a=document.cookie; a.split(';').forEach(function(e){ var p=e.split('='); if (p[0]) r[p.shift().trim()]=p.join('='); }); return r; } var ck=cookies(); if (ck['APISID']) return; function hasDismiss(e, l=1) { var p=e; while (p && l-- && (p=p.parentNode)) { if (p.id=='dismiss-button') return p; } } function SImutF(mutL){ for (let mut of mutL) { let t=mut.target, db=t; if ( (t.id=='dismiss-button') || (db=hasDismiss(t,2)) ) { if (db.__c__) continue; if (t.classList.contains('yt-upsell-dialog-renderer') || t.classList.contains('ytd-mealbar-promo-renderer')) ; else if (t.classList.contains('yt-tooltip-renderer')) { t=t.querySelector('yt-button-renderer'); if (!t) continue; } else continue; db.__c__=true; setTimeout(function(){ t.click(); delete db.__c__; }, 300); subObs.observe(t,{attributes: true, subtree: true}); } } } var obs=new MutationObserver(SImutF); var subObs=new MutationObserver(SImutF); var obs_w4PU=new MutationObserver(function(mutL){ for (let mut of mutL) { for (let n of mut.addedNodes) { if (n.nodeName == 'YTD-POPUP-CONTAINER') { this.disconnect(); setObs(); return; } } } }); var obs_w4ErRd=new MutationObserver(function(mutL){ for (let mut of mutL) { for (let n of mut.addedNodes) { if (n.id == 'columns') { let r=n.querySelector('yt-playability-error-supported-renderers'); if (r) { this.disconnect(); setErRdObs(); return; } } } } }); var obsCk=new MutationObserver(function(mutL){ var cb; for (let mut of mutL) { for (let n of mut.addedNodes) { if (n.nodeName == 'TP-YT-IRON-OVERLAY-BACKDROP') { cb=document.querySelector('#lightbox'); consent(); } if ( (n.nodeName == 'YTD-CONSENT-BUMP-LIGHTBOX') || (n=cb) ) { this.disconnect(); setTimeout(function(){ let ck=cookies(); if (ck['CONSENT'] && !ck['CONSENT'].startsWith('YES')) document.cookie='CONSENT=YES+;path=/;secure;domain=youtube.com;expires='+(new Date(Date.now()+567648000000)).toUTCString()+';'; }, 5000); // not an iframe anymore consent(null,n); return; } } } }); var ErRd, ErRdIT, obsErRd=new MutationObserver(function(mutL){ var t, ITc=30; for (let mut of mutL) { t=mut.target; if (t.id=='dismiss-button') { if (t.classList.contains('yt-player-error-message-renderer')) t=t.querySelector(':scope yt-button-renderer paper-button#button'); else continue; if (ErRdIT) clearInterval(ErRdIT); ErRdIT=setInterval(function(){ if (!ITc-- || ErRd.hidden || !t) { clearInterval(ErRdIT); ErRdIT=0; } else t.click(); }, 300); return; } } }); function init() { var t; if (document.querySelector('ytm-app')) { new MutationObserver(function(mutL){ for (let mut of mutL) { for (let n of mut.addedNodes) { if (n.classList.contains('upsell-dialog-lightbox') || n.classList.contains('consent-bump-lightbox') ) { if (t=document.querySelector('.upsell-dialog-dismiss-button button, .consent-bump-button-wrapper button')) { t.click(); } } } } }).observe(document.body, {childList: true, subtree: false}); } setObs(); setErRdObs(); if (ck['CONSENT'] && !ck['CONSENT'].startsWith('YES')) { obsCk.observe(document.body, {childList:true}); setTimeout(function(){obsCk.disconnect();},30000); } } var c=1; function setObs(){ var r=document.querySelector('ytd-app ytd-popup-container'); if (!r) { if (c--) obs_w4PU.observe(document.querySelector('ytd-app'), {childList:true}); return; } obs.observe(r, {childList: true, subtree: true}); } function setErRdObs() { ErRd=document.querySelector('ytd-app yt-playability-error-supported-renderers'); if (!ErRd) { obs_w4ErRd.observe(document.querySelector('ytd-app'), {childList: true, subtree: true}); setTimeout(function(){obs_w4ErRd.disconnect();}, 20000); } else obsErRd.observe(ErRd ,{childList: true, subtree: true, attributes: true}); } if (document.readyState != 'loading') init(); else document.addEventListener('DOMContentLoaded', init); function inject() { var r=document.head || document.documentElement; if (!r) { setTimeout(inject,0); return; } var s=document.createElement('style'); r.appendChild(s); s.textContent="#consent-bump,iron-overlay-backdrop,yt-upsell-dialog-renderer{opacity:0;}yt-upsell-dialog-renderer *,yt-bubble-hint-renderer,.upsell-dialog-lightbox,.consent-bump-lightbox{display:none !important;}ytd-app > ytd-consent-bump-lightbox,ytd-app > ytd-consent-bump-v2-lightbox,ytd-app ~ iron-overlay-backdrop,ytd-app ~ tp-yt-iron-overlay-backdrop{display:none;}"; s=document.createElement('script'); s.textContent= `(function(){var c=160, pl, plR, prom, oldp={}, t, done, hasPaused; const obs=new MutationObserver(function(mutL){ if (!prom) { if (prom=document.querySelector('ytd-player#ytd-player') ) { if (prom.getPlayerPromise) { prom.getPlayerPromise().then(function(a){ pl=a; patch(); }); } else prom=null; } } for (let mut of mutL) { for (let n of mut.addedNodes) { if (n.id == 'movie_player') { plR=n.closest('ytd-player#ytd-player'); if (!plR) continue; this.disconnect(); setTimeout(function(){ pl=plR.getPlayer(); patch(); }, 0); return; } } } }); function init(){ obs.observe(document.querySelector('ytd-app') || document.body, {childList: true, subtree: true}); setTimeout(function(){obs.disconnect();},10000); f(); } function f(){ plR=document.querySelector('ytd-player#ytd-player'); if (plR) pl=plR.getPlayer(); if (!pl) { if (--c) setTimeout(f,100); return; } else patch(); } if (document.readyState != 'loading') init(); else document.addEventListener('DOMContentLoaded', init); function patch() { if (done) return; if (pl) done=1; obs.disconnect(); for (let i in pl) if (typeof pl[i] == 'function') { if ( !['cancelPlayback', 'pauseVideo', 'stopVideo', 'playVideo'].includes(i) ) continue; oldp[i]=pl[i]; pl[i]=function() { let pass= (!hasPaused && i=='playVideo') ? true:false; let st=(new Error()).stack; if ( !pass && (st.search(/(\\.onFulfilled|_onFulfilled|scheduler\\.js:|handlePopupClose_)/)>0) && (st.search(/onYtStopOldPlayer/) ==-1) ) { if (i=='pauseVideo') hasPaused=1; return; } oldp[i].apply(this,arguments); } } } })();`; r.appendChild(s); if (s.parentNode) s.parentNode.removeChild(s); } // inject() inject(); })();