您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Bypass age/content restrictions on YouTube
// ==UserScript== // @name YouTube Restriction Bypass // @namespace https://gf.qytechs.cn/en/users/305931-emerson-bardusco // @version 1.7 // @description Bypass age/content restrictions on YouTube // @author EmersonxD // @match *://*.youtube.com/* // @grant none // @run-at document-start // @license MIT // ==/UserScript== (function() { 'use strict'; var config = { proxyHost: 'https://youtube-proxy.zerody.one', validStatuses: ['OK', 'LIVE_STREAM_OFFLINE'], unlockableStatuses: ['AGE_VERIFICATION_REQUIRED', 'CONTENT_CHECK_REQUIRED'] }; var nativeXHR = XMLHttpRequest.prototype.open; var nativeJSON = JSON.parse; function log() { var args = Array.prototype.slice.call(arguments); console.log('[Bypass] ' + args.join(' ')); } function isGoogleVideo(url) { return url.host.indexOf('.googlevideo.com') > -1; } function needsProxy(url) { return url.search.indexOf('gcr=') > -1; } function buildProxyUrl(url) { return config.proxyHost + '/direct/' + btoa(url.href); } function modifyRequest(url) { if (!isGoogleVideo(url)) return url.href; if (!needsProxy(url)) return url.href; try { return buildProxyUrl(url); } catch(e) { log('Error modifying request:', e.message); return url.href; } } function unlockPlayer(data) { var status = data.playabilityStatus; if (status && config.unlockableStatuses.indexOf(status.status) > -1) { status.status = 'OK'; status.reason = ''; log('Player unlocked'); } return data; } function unlockResponse(data) { var content = data.contents; if (content && content.twoColumnWatchNextResults && content.twoColumnWatchNextResults.secondaryResults) { content.twoColumnWatchNextResults.secondaryResults = { secondaryResults: { results: [] } }; log('Sidebar cleaned'); } return data; } function processJSON(data) { try { return unlockResponse(unlockPlayer(data)); } catch(e) { log('Processing error:', e.message); return data; } } XMLHttpRequest.prototype.open = function(method, url) { var newUrl = modifyRequest(new URL(url)); var args = [method, newUrl || url].concat(Array.prototype.slice.call(arguments, 2)); nativeXHR.apply(this, args); }; JSON.parse = function(text) { return processJSON(nativeJSON.call(this, text)); }; log('Initialized'); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址