您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Watch theYNC Underground videos without needing an account
当前为
// ==UserScript== // @name theYNC.com Underground bypass // @description Watch theYNC Underground videos without needing an account // @namespace Violentmonkey Scripts // @match https://theync.com/* // @match https://theync.net/* // @match https://theync.org/* // @grant none // @version 1.3 // @license MIT // @author - // ==/UserScript== function getTheYNCVideoURL(url) { for (const [, group_url] of url.matchAll( /https:\/\/theync.com\/media\/thumbs\/(.*?)\.[a-zA-Z0-9_.-]*/gm )) { return `https://media.theync.com/videos/${group_url}.mp4`; } } function waitForElm(selector) { return new Promise((resolve) => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver((mutations) => { if (document.querySelector(selector)) { observer.disconnect(); resolve(document.querySelector(selector)); } }); // If you get "parameter 1 is not of type 'Node'" error, see https://stackoverflow.com/a/77855838/492336 observer.observe(document.body, { childList: true, subtree: true, }); }); } waitForElm(".content-block").then((contentBlock) => { contentBlock .querySelectorAll(".upgrade-profile > .upgrade-info-block") .forEach((element) => { const thumbnailURL = element.querySelector(".image-block > .image > img").src; if (thumbnailURL) { const videoURL = getTheYNCVideoURL(thumbnailURL); if (videoURL) { location.href = videoURL; } } }) contentBlock .querySelectorAll(".inner-block > a:has(>.item-info>.border-gold)") .forEach((element) => { const thumbnailURL = element.querySelector(".image > img").src; if (thumbnailURL) { const videoURL = getTheYNCVideoURL(thumbnailURL); if (videoURL) { element.href = getTheYNCVideoURL(thumbnailURL); } } }) } );