YT redirect to Invidious on login request

Redirects youtube links to invidious instances if youtube requires you to login for geo-blocking or age restriction

// ==UserScript==
// @name         YT redirect to Invidious on login request
// @namespace    http://tampermonkey.net/
// @version      1.1.7
// @description  Redirects youtube links to invidious instances if youtube requires you to login for geo-blocking or age restriction
// @author       Xynoth
// @match        https://www.youtube.com/watch?*
// @match        https://consent.youtube.com/m?continue=*
// @grant        none
// @inject-into  content
// @license      GPL-3.0
// ==/UserScript==

(function() {
    // Edit your invidious instance in the variable below.
    // You can find a list with invidious instances at https://redirect.invidious.io/
    var invidiousInstance = "https://invidio.xamh.de";

    // Enable button to Invidious on youtube?
    var enableInvButton = true;

    // Enable youtube consent page bypass
    var bypassConsent = false;
  
    // Initial script variables
    var currentLocation = window.location.href;
    var bypassedConsent = false;
    
  
    // Checks if the consent page appears and tries to bypass it the variable is enabled
    if (currentLocation.startsWith("https://consent.") && bypassConsent == true) {
      var firstFragment = currentLocation.split("%3D")[1];
      var videoID = firstFragment.split("&gl")[0];
      bypassedConsent = true;
      currentLocation = "https://www.youtube.com/watch?v=" + videoID;
    }
  
    // Other variables
    var instanceFix = currentLocation.replace("https://www.youtube.com/watch?", invidiousInstance + "/watch?");
    var newLocation = instanceFix.replace("&feature=youtu.be", "");
    var loginWarning;
    var subscribeDiv;
    var invButton;
    var adsOnScreen;
    var nsfwTag;
    var timedLoop = 0;

    // In case we just arrived at a normal video
    if (!bypassedConsent) {
      
      // We append the "watch on invidious" button here
      subscribeDiv = document.getElementById("analytics-button");

      // We check for the "Must login" container for 5 seconds before removing checker
      var checkExist = setInterval(function() {
          loginWarning = document.querySelector(".ytp-error[role='alert']");
          nsfwTag = document.querySelector("ytd-metadata-row-renderer a.yt-formatted-string[href$='community_guidelines']");
          adsOnScreen = document.querySelector(".ytp-ad-module");
          subscribeDiv = document.querySelector("#meta-contents #analytics-button");
          invButton = document.getElementById("invidious-Button");
          if ((loginWarning && !adsOnScreen) || nsfwTag) {
              console.log("Redirecting to Invidious instance...")
              window.location.href = newLocation;
              clearInterval(checkExist);
          } else if (invButton == null && enableInvButton) {
              var watchOnInv = document.createElement("a");
              watchOnInv.setAttribute('id', "invidious-Button");
              watchOnInv.href = newLocation;
              watchOnInv.style.background = "#444";
              watchOnInv.style.fontSize = "14px";
              watchOnInv.style.textDecoration = "none";
              watchOnInv.style.color = "#fff";
              watchOnInv.style.padding = "11px 15px";
              watchOnInv.style.borderRadius = "5px";
              watchOnInv.innerHTML = "INVIDIOUS";
              console.log("Potato")
              subscribeDiv.appendChild(watchOnInv);
          } else if (timedLoop >= 5) {
              clearInterval(checkExist);
          }
          timedLoop += 1;
      }, 1000);
      
    }
    // If we arrived at the consent page with bypassConsent enabled instead
    else {
      window.location.href = newLocation;
    }
  


})();