您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hide non-youtube videos on Google video search results. Add toggle.
// ==UserScript== // @name Google Video Filter // @namespace http://tampermonkey.net/ // @version 0.1 // @description Hide non-youtube videos on Google video search results. Add toggle. // @author ChatGPT // @match https://www.google.com/search?*tbm=vid* // @match https://www.google.ca/search?*tbm=vid* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; let showHidden = false; // Function to toggle visibility of hidden divs function toggleVisibility() { showHidden = !showHidden; const hiddenDivs = document.querySelectorAll('#search div.g'); for (let div of hiddenDivs) { const citeElement = div.querySelector('cite'); if (citeElement && !citeElement.innerText.includes('youtube.com')) { div.style.display = showHidden ? '' : 'none'; } } } // Function to check and hide non-youtube videos function hideNonYouTubeVideos() { const resultDivs = document.querySelectorAll('#search div.g'); let hiddenCount = 0; for (let div of resultDivs) { const citeElement = div.querySelector('cite'); if (citeElement && !citeElement.innerText.includes('youtube.com')) { div.style.display = 'none'; hiddenCount++; } } // Find result-stats div and append message if any non-youtube items were hidden if (hiddenCount > 0) { const resultStats = document.querySelector('#result-stats'); if (resultStats && resultStats.innerText.indexOf("Hidden") == -1) { resultStats.innerText += ` Hidden ${hiddenCount} non-youtube items. Click me to toggle\n`; resultStats.onclick = toggleVisibility; } } } // Initial check and hide operation hideNonYouTubeVideos(); // Mutation observer to detect changes in search results const observer = new MutationObserver(hideNonYouTubeVideos); // Get the target node for observing changes const targetNode = document.querySelector('#search'); // Options for the observer (which mutations to observe) const config = { childList: true, subtree: true }; // Start observing the target node for configured mutations observer.observe(targetNode, config); })();