Google Video Filter

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);
})();

长期地址
遇到问题?请前往 GitHub 提 Issues,或加Q群1031348184

赞助商

Fishcpy

广告

Rainyun

注册一下就行

Rainyun

一年攒够 12 元