Advertisement
csako

Youtube sign in popup block

Sep 25th, 2020 (edited)
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Youtube login block
  3. // @namespace    
  4. // @version      0.1
  5. // @description  try to take over the world!
  6. // @author       unknown reddit user
  7. // @match        https://www.youtube.com/*
  8. // @grant        none
  9. // ==/UserScript==
  10.  
  11. // SentinelJS is a JavaScript library that lets you detect new DOM nodes
  12. this.sentinel||function(e,n){var a,o,r,s,l,f;sentinel=(s=Array.isArray,l={},f={},{on:function(e,i){if(i){if(!a){var n=document,t=n.head;n.addEventListener("animationstart",function(e,n,t,i){if(n=f[e.animationName])for(e.stopImmediatePropagation(),t=n.length,i=0;i<t;i++)n[i](e.target)},!0),a=n.createElement("style"),t.insertBefore(a,t.firstChild),o=a.sheet,r=o.cssRules}(s(e)?e:[e]).map(function(e,n,t){(n=l[e])||(t="!"==e[0],l[e]=n=t?e.slice(1):"sentinel-"+Math.random().toString(16).slice(2),r[o.insertRule("@keyframes "+n+"{from{transform:none;}to{transform:none;}}",r.length)]._id=e,t||(r[o.insertRule(e+"{animation-duration:0.0001s;animation-name:"+n+";}",r.length)]._id=e),l[e]=n),(f[n]=f[n]||[]).push(i)})}},off:function(e,a){(s(e)?e:[e]).map(function(e,n,t,i){if(n=l[e]){if(t=f[n],a)for(i=t.length;i--;)t[i]===a&&t.splice(i,1);else t=[];if(!t.length){for(i=r.length;i--;)r[i]._id==e&&o.deleteRule(i);delete l[e],delete f[n]}}})},reset:function(){l={},f={},a&&a.parentNode.removeChild(a),a=0}}),(n=e.createEvent("HTMLEvents")).initEvent?n.initEvent("sentinel-load",!1,!1):n=new Event("sentinel-load"),e.dispatchEvent(n)}(document);
  13.  
  14. (() => {
  15.   const isSignedIn = document.cookie.includes('APISID=');
  16.  
  17.   if (isSignedIn) return;
  18.  
  19.   addStyles();
  20.   addScript();
  21.  
  22.   const observer = new MutationObserver(() => {
  23.     const dismissButton = document.querySelector(
  24.       'yt-upsell-dialog-renderer #dismiss-button'
  25.     );
  26.  
  27.     dismissButton && dismissButton.click();
  28.  
  29.     const consentBump = document.querySelector('#consent-bump');
  30.  
  31.     if (consentBump) {
  32.       consentBump.remove();
  33.  
  34.       const video = document.querySelector('video');
  35.  
  36.       const onVideoPauseAfterConsentBump = () => {
  37.         video.play();
  38.         video.removeEventListener('pause', onVideoPauseAfterConsentBump);
  39.  
  40.         setPopupContainerDisplay();
  41.       };
  42.  
  43.       video.addEventListener('pause', onVideoPauseAfterConsentBump);
  44.     }
  45.   });
  46.  
  47.   observer.observe(document.querySelector('ytd-app'), { childList: true });
  48.  
  49.   sentinel.on('.ytp-large-play-button', (button) => {
  50.     let searchTime;
  51.     try {
  52.       searchTime = parseInt(location.search.match(/&t=(\d+)/)[1]);
  53.     } catch {}
  54.  
  55.     button.click();
  56.     searchTime && (document.querySelector('video').currentTime = searchTime);
  57.  
  58.     setPopupContainerDisplay();
  59.   });
  60.  
  61.   function setPopupContainerDisplay() {
  62.     const popupContainer = document.querySelector('.ytd-popup-container');
  63.     popupContainer && (popupContainer.style.display = 'none');
  64.   }
  65.  
  66.   function addStyles() {
  67.     const style = document.createElement('style');
  68.  
  69.     style.innerHTML = /* css */ `
  70.       #consent-bump,
  71.       iron-overlay-backdrop,
  72.       yt-upsell-dialog-renderer {
  73.         display: none !important;
  74.       }
  75.     `;
  76.  
  77.     document.head.append(style);
  78.   }
  79.  
  80.   function addScript() {
  81.     const script = document.createElement('script');
  82.  
  83.     script.innerHTML = /* javascript */ `
  84.       const player = document.querySelector('#movie_player');
  85.       player && (player.stopVideo = function() { console.log("Don't stop!"); });
  86.     `;
  87.  
  88.     document.body.append(script);
  89.   }
  90. })();
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement