YouTube - Shorts remover (subscriptions only)

Removes the shorts from your subscription page.

目前為 2023-07-13 提交的版本,檢視 最新版本

// ==UserScript==
// @name        YouTube - Shorts remover (subscriptions only)
// @namespace   https://greasyfork.org/en/users/2755-robotoilinc
// @author      RobotOilInc
// @version     0.2.4
// @license     MIT
// @description Removes the shorts from your subscription page.
// @match       https://*.youtube.com/feed/subscriptions*
// @icon        https://i.imgur.com/rvNc0hN.png
// @grant       none
// ==/UserScript==

(function() {
    new MutationObserver(function(mutationList, observer) {
        // Remove any and all shelves
        const shelves = document.getElementsByTagName('ytd-reel-shelf-renderer')
        for (let i = 0; i < shelves.length; i++) {
            console.log("Removing shorts shelf", shelves[i]);
            shelves[i].remove()
        }

        // Remove anything with the shorts URL
        const urls = document.querySelectorAll('[href*="/shorts/"]');
        for (let i = 0; i < urls.length; i++) {
            const element = urls[i].closest('ytd-item-section-renderer');
            if (element) { console.log("Removing short url", urls[i]);element.remove(); }
        }

        // Remove anything with the shorts overlay
        const overlays = document.querySelectorAll('ytd-thumbnail-overlay-time-status-renderer[overlay-style="SHORTS"]');
        for (let i = 0; i < overlays.length; i++) {
            const element = overlays[i];

            const grid = element.closest('.ytd-grid-renderer');
            if(grid) { console.log("Removing short overlay", element); grid.remove(); return; }

            const section =  element.closest('ytd-item-section-renderer');
            if(section) { console.log("Removing short overlay", element); grid.remove(); return; }

            var list = element.closest('.ytd-section-list-renderer');
            if(list) { console.log("Removing short overlay", element); list.remove();}
        }
    }).observe(document.querySelector('#page-manager'), { childList: true, subtree: true });
})();