How to Remove Rumble Shorts Everywhere (Website Only – Any Browser with Tampermonkey)

10 days ago
2.34K

Click See More to copy the script below.

Join Pickax: https://pickax.com/?referralCode=9bgj0rc&refSource=copy

🎥 Learn how to remove Rumble Shorts everywhere using Tampermonkey! In this quick tutorial from “Mastering Rumble,” I’ll walk you through the simple steps to completely hide Shorts across Rumble — including the homepage, channel pages, playlists, and search — on any browser.

📋 Script to Copy and Paste:

// ==UserScript==
// @name Rumble – Hide Shorts Everywhere
// @version 9.7
// @description 9.6 stable core + user pages handled safely for Firefox
// @match https://rumble.com/*
// @run-at document-start
// @grant none
// ==/UserScript==

(function () {
'use strict';

const path = location.pathname;

const isChannelPage = /^\/c\//.test(path);
const isUserPage = /^\/(user|u)\//.test(path) || /^\/@/.test(path);
const isAccountPage = path.includes('/account/');

/* ============================================================
===== CHANNEL + USER PAGE (9.7 ENGINE — SAFER FOR FIREFOX) ===
============================================================ */

if ((isChannelPage || isUserPage) && !isAccountPage) {

const style = document.createElement('style');
style.textContent = `
rum-shorts-row { display: none !important; }
use[href="#shorts_label"] { display: none !important; }

/* Remove ALL Shorts UI */
.channel-subheader--menu-item[href*="/shorts"],
.main-menu-item__nav[href*="/shorts"],
a[href^="/c/"][href*="/shorts"],
a[href^="/shorts"],
button[aria-label*="Shorts"] {
display: none !important;
}

.thumbnail_grid, .grid {
row-gap: 1.5rem !important;
margin-top: 1.5rem !important;
}

.videostream, article.video-item {
margin-bottom: 1.5rem !important;
}

section.py-6.mb-6.border-solid.border-y {
display: none !important;
}
`;
document.documentElement.appendChild(style);

function hideShortsCards(root = document) {
root.querySelectorAll('.videostream, article.video-item').forEach(card => {
if (
card.querySelector('use[href="#shorts_label"]') ||
card.querySelector('a[href^="/shorts/"]')
) {
// Safer for Firefox: hide instead of remove
card.style.display = 'none';
}
});
}

function hideDividers(root = document) {
root.querySelectorAll('section.py-6.mb-6.border-solid.border-y').forEach(section => {
const hasVideos = section.querySelector('.videostream, article.video-item');
const hasShortRow = section.querySelector('rum-shorts-row');
const hasRealContent = section.textContent.trim().length > 10;
if (!hasVideos && !hasShortRow && !hasRealContent) {
section.style.display = 'none';
}
});
}

function hideShortsUI(root = document) {
root.querySelectorAll('a, button').forEach(el => {
const href = el.getAttribute?.('href') || '';
const text = el.textContent?.trim().toLowerCase();

if (
href.includes('/shorts') ||
(el.classList.contains('main-menu-item__nav') && href.includes('shorts')) ||
text === 'shorts' ||
text === 'shorts beta'
) {
el.style.display = 'none';
}
});
}

const observer = new MutationObserver(mutations => {
for (const m of mutations) {
for (const node of m.addedNodes) {
if (node.nodeType !== 1) continue;
// Add tiny delay on user pages to prevent Firefox flashes
if (isUserPage) {
setTimeout(() => {
hideShortsCards(node);
hideDividers(node);
hideShortsUI(node);
}, 50);
} else {
hideShortsCards(node);
hideDividers(node);
hideShortsUI(node);
}
}
}
});

observer.observe(document.documentElement, { childList: true, subtree: true });

document.addEventListener('DOMContentLoaded', () => {
hideShortsCards();
hideDividers();
hideShortsUI();
});

return;
}

/* ============================================================
================= GLOBAL LOGIC (UNCHANGED) ===================
============================================================ */

const style = document.createElement('style');
style.textContent = `
rum-shorts-row { display: none !important; }

body:not([class*="account"]) rum-shorts-row { display: none !important; }
body:not([class*="account"]) use[href="#shorts_label"] { display: none !important; }

.thumbnail_grid, .grid { row-gap: 1.5rem !important; }

section:has(rum-shorts-row),
div:has(rum-shorts-row) { display: none !important; }

section:has(use[href="#shorts_label"]),
div:has(use[href="#shorts_label"]) {
opacity: 0 !important;
height: 0 !important;
overflow: hidden !important;
}

section.homepage-section[rum-ignore]:not(:has(.videostream)):not(:has(rum-shorts-row)):not(:has(article)):has(.js-rac-desktop-container) {
display: none !important;
height: 0 !important;
margin: 0 !important;
padding: 0 !important;
}

li.videostream__details[data-video-id]:has(.videostream__list-index):not(:has(img)):not(:has(a)) {
display: none !important;
visibility: hidden !important;
}
`;
document.documentElement.appendChild(style);

function hideShortsUI(root = document) {
if (isAccountPage) return;
root.querySelectorAll('a, button').forEach(el => {
const text = el.textContent?.trim().toLowerCase();
const href = el.getAttribute?.('href');
if (text === 'shorts' || text === 'shorts beta') el.style.display = 'none';
if (href && href.startsWith('/shorts')) el.style.display = 'none';
});
}

function removeShortsCards(root = document) {
if (isAccountPage) return;
root.querySelectorAll('.videostream, article.video-item').forEach(card => {
if (
card.querySelector('use[href="#shorts_label"]') ||
card.querySelector('a[href^="/shorts/"]')
) card.style.display = 'none'; // safer than remove
});
}

const observerGlobal = new MutationObserver(mutations => {
for (const m of mutations) {
for (const node of m.addedNodes) {
if (node.nodeType !== 1) continue;
hideShortsUI(node);
removeShortsCards(node);
}
}
});

observerGlobal.observe(document.documentElement, { childList: true, subtree: true });

document.addEventListener('DOMContentLoaded', () => {
hideShortsUI();
removeShortsCards();
});

})();

👍 If this guide helped you clean up Rumble, give it a thumbs up and consider following for more Rumble tips, fixes, and tutorials. Have questions or run into issues? Leave a comment — happy to help.

🌟 Thanks for watching “Mastering Rumble.” Stay tuned for more helpful Rumble tips and tricks. Happy browsing!

Loading 18 comments...