YoutubeWhy

Clicks the dumb age verification button

当前为 2020-07-19 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         YoutubeWhy
// @namespace    sc
// @include      https://www.youtube.com/w*
// @version      12
// @description  Clicks the dumb age verification button
// @author Wepwawet
// @grant        none
// ==/UserScript==
var ran = "";
var runtime = 0;

function code() {
    if (ran == document.URL) return;
    if (document.URL.endsWith('has_verified=1')) return;

    if (runtime > 2) return; // this is youtube trying to prevent us from automating the process of clicking the button, in this case there is no point to continue running, the page will simply never load
    // this and the setTimeout is responsible for correcting when they do this, which is why the page loads another video as they attempt to make us skip whatever we want to watch, but then the page goes back to the proper
    // video with has_verified being added to the title

    var r18 = document.querySelector('html body._400x225._top-left ytd-app div#content.style-scope.ytd-app ytd-page-manager#page-manager.style-scope.ytd-app ytd-watch-flexy.style-scope.ytd-page-manager.hide-skeleton div#columns.style-scope.ytd-watch-flexy div#primary.style-scope.ytd-watch-flexy div#primary-inner.style-scope.ytd-watch-flexy div#player.style-scope.ytd-watch-flexy yt-playability-error-supported-renderers#error-screen.style-scope.ytd-watch-flexy div#container.style-scope.yt-playability-error-supported-renderers yt-player-error-message-renderer.style-scope.yt-playability-error-supported-renderers div#info.style-scope.yt-player-error-message-renderer div#button.style-scope.yt-player-error-message-renderer yt-button-renderer.style-scope.yt-player-error-message-renderer.style-dark-on-black.size-default a.yt-simple-endpoint.style-scope.yt-button-renderer paper-button#button.style-scope.yt-button-renderer.style-dark-on-black.size-default');

    if (r18) {
        r18.click();
        ran = document.URL; // prevents running more than once
        runtime = 0;
        return;
    } else {
        runtime += 1;
        setTimeout(function() {

            code();
            return;

        }, 2000);
    }

}

window.onload = code;
window.addEventListener('yt-navigate-start', code, true);
window.addEventListener('yt-navigate-finish', code, true);