YouTube Age Bypass

shitty but works in 2018 (requires to manually reload page)

目前為 2018-08-17 提交的版本,檢視 最新版本

// ==UserScript==
// @name         YouTube Age Bypass
// @description  shitty but works in 2018 (requires to manually reload page)
// @version      1
// @grant        none
// @include	     https://www.youtube.com/*
// @run-at       document-end
// @namespace https://gf.qytechs.cn/users/149768
// ==/UserScript==
(function() {
    "use strict";

    const inject = function() {
        "use strict";
      
      var overriddenVideo = null

      	function haveVideoData() {
          return typeof window.ytInitialPlayerResponse != 'undefined' && window.ytInitialPlayerResponse != null;
        }
      
        function isCurrentVideoAgeRestricted() {
            return typeof window.ytInitialPlayerResponse.playabilityStatus.desktopLegacyAgeGateReason != 'undefined' && window.ytInitialPlayerResponse.playabilityStatus.desktopLegacyAgeGateReason;
        }

        function getVideoId() {
            return window.ytInitialPlayerResponse.videoDetails.videoId;
        }

        function removeNode(n) {
          if(n != null)n.parentNode.removeChild(n);
        }

        function waitForNodeId(node, cb) {
            var ival = setInterval(function(node, cb) {
                if (document.getElementById(node) != null) {
                    clearInterval(ival);
                    cb();
                }
            }, 100, node, cb);
        }

      	function checkAndUnrestrict(){
          
          if(overriddenVideo != null) { // if we have injected a video and navigate away, we need to clean up
            console.log("Navigating away from page, removing iframe");
            removeNode(overriddenVideo);
          }
          
          if (!haveVideoData() || !isCurrentVideoAgeRestricted()) {
              return;
          }

          console.log("Is video age restricted: " + isCurrentVideoAgeRestricted())

          waitForNodeId('player-container', function() {
              removeNode(document.getElementById('error-screen'));

              waitForNodeId('movie_player', function() {

                  var oldplayer = document.getElementById('movie_player');
                  var container = oldplayer.parentNode;
                  var playerCSSClass = oldplayer.className;
                  removeNode(oldplayer);
                  document.querySelectorAll('[player-unavailable]').forEach(function(e) {
                      e.removeAttribute('player-unavailable');
                  });



                  var playerframe = window.document.createElement("iframe");
                  playerframe.setAttribute("src", "//www.youtube.com/embed/" + getVideoId() + "?autoplay=1&showinfo=0&rel=0");
                  playerframe.setAttribute("id", "movie_player");
                  playerframe.setAttribute("class", playerCSSClass);
                  playerframe.setAttribute("frameBorder", "0");

                  container.appendChild(playerframe);
                	overriddenVideo = playerframe;

              });


          });
        }
      
      checkAndUnrestrict();
    }


    const script = document.createElement("script");
    const target = document.head || document.documentElement;
    script.text = "(" + inject.toString() + ")();";

    target.appendChild(script);
    target.removeChild(script);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址