// ==UserScript== // @name Remove youtube home and shorts // @namespace Violentmonkey Scripts // @include *youtube.com* // @grant GM_addStyle // @version 1.0 // @author tjk918 // @description 9/21/2023, 9:44:13 AM // @license MIT // ==/UserScript== // Remove home and shorts button GM_addStyle(` tp-yt-app-drawer a[title=Home], tp-yt-app-drawer a[title=Shorts], ytd-mini-guide-renderer a[title=Home], ytd-mini-guide-renderer a[title=Shorts] { display: none !important; /* Needs !important flag */ } `) // Subscriptions page is new homepage const subscriptionsPath = "/feed/subscriptions" function redirectToSubscriptions() { // Invoke clicking the subscriptions button to use youtube's hot page reloading if possible instead of reloading the whole page const subscriptionsButton = document.querySelector("tp-yt-app-drawer a[title=Subscriptions]") if (subscriptionsButton) subscriptionsButton.click() else window.location.replace(subscriptionsPath) } // Redirect to new homepage function redirectIfHome() { if (window.location.pathname === "/") redirectToSubscriptions() } redirectIfHome() window.addEventListener("popstate", redirectIfHome) //document.body.addEventListener("yt-navigate-finish", redirectIfHome) // Youtube logo navigate to subscriptions /* Needs to be done safely in case youtube changes and also because it throws * an error otherwise because violentmonkey seems to load the script twice */ const logo = document.querySelector("#logo a") if (logo) { logo.href = subscriptionsPath logo.addEventListener("click", e => { // Seems there is an event listener that forces redirect to site root, so stop that first e.stopPropagation() e.preventDefault() redirectToSubscriptions() }) }