您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Give a warning alert if video is suspected RickRoll.
当前为
// ==UserScript== // @name YouTube Anti-RickRoll // @match *://*.youtube.com/watch* // @grant none // @version 1.0 // @author yodaluca23 // @license GNU GPLv3 // @description Give a warning alert if video is suspected RickRoll. // @namespace https://greasyfork.org/users/1315976 // ==/UserScript== const jsonUrl = 'https://raw.githubusercontent.com/larssieboy18/rickroll-list/refs/heads/main/rickrolls.json'; // Function to fetch JSON and extract YouTube IDs from GitHub database async function extractYouTubeIDs() { try { const response = await fetch(jsonUrl); const data = await response.json(); const youtubeRegex = /(?:youtube\.com\/watch\?v=|youtu\.be\/|video_id=)([\w-]+)/g; const links = data.rickrolls || []; const youtubeIDs = []; for (const link of links) { let match; while ((match = youtubeRegex.exec(link)) !== null) { youtubeIDs.push(match[1]); } } return youtubeIDs; } catch (error) { console.error('Error fetching or processing data:', error); return []; } } // Function to check if the video is a Rickroll function isRickRoll() { try { const videoTitle = unsafeWindow.ytInitialPlayerResponse.videoDetails.title.toLowerCase().replace(/\s+/g, ''); const videoKeywords = unsafeWindow.ytInitialPlayerResponse.videoDetails.keywords.map(keyword => keyword.toLowerCase().replace(/\s+/g, '')); const rickrollPattern = /(rickroll|rickastley)/; if (videoTitle.match(rickrollPattern) || videoKeywords.some(keyword => keyword.match(rickrollPattern))) { return true; } } catch (e) { console.error('Error while checking video details:', e); } return false; } // Function to display warning function warning() { document.querySelector('video').pause(); alert("This is likely a RickRoll! Do you want to continue?"); } // Main logic extractYouTubeIDs().then((ids) => { const currentVideoID = window.location.href.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/); if (currentVideoID && ids.includes(currentVideoID[1])) { warning(); } else if (isRickRoll()) { warning(); } });