![]()
RumbleX
The ultimate Rumble enhancement suite. 126 feature modules across 13 categories — ad blocking, theater mode, video downloads with CDN deep-scan probing, multi-theme engine, playback controls, chat enhancements, chapters, SponsorBlock, clips, live DVR, transcripts, auto-hide chrome, 50+ granular hide-X toggles for every Rumble row/button/player control, and full-round-trip backup/restore. Chrome MV3 + Firefox MV2 + userscript.
Features
Ad Blocking
- Ad Nuker — CSS + DOM removal of ads, pause overlays, premium nags, IMA SDK, LRT
- Feed Cleanup — Remove premium promos from feeds
- Hide Reposts — Hide reposted videos from feeds
- Hide Premium — Hide premium/PPV videos via CSS
:has() - Shorts Filter — Hide Shorts cards from all feeds
- SponsorBlock — Per-video local segments with auto-skip (sponsor / intro / outro / selfpromo / interaction), progress-bar markers, JSON import + export
Video Player
- Theater Split — Fullscreen video with scroll-to-reveal side panel (chat/comments/download)
- Auto Theater — Auto-enter native theater mode on load
- Full-Width Player — Maximize player width; on live streams, side-by-side chat layout with responsive stacking ≤ 1100 px
- Adaptive Live Layout — Expand main content whenever chat is visible on live streams
- Speed Control — Persistent playback speed (0.25x–3x) with live stream detection
- Scroll Volume — Mouse wheel volume + middle-click mute + overlay
- Auto Max Quality — Auto-select highest resolution on load
- Autoplay Block — Prevent auto-play of next video
- Loop Control — Full video loop + A-B segment loop
- Mini Player — Floating draggable video when scrolling away
- Keyboard Nav — YouTube-style hotkeys (J/K/L, F, M, 0-9, arrows)
- Video Stats — Resolution, codec, buffer, frames overlay
- Chapters — Parse description timestamps, render tick marks on the seek bar + clickable chapter list
- Autoplay Queue — FAB-pinned queue of Rumble URLs, auto-advances when current video ends
Theme & Layout
- Dark Theme — Multi-theme engine with 4 built-in themes and player bar coloring
- Catppuccin Mocha (default) — Purple/blue accents
- YouTubify — YouTube dark-mode look with red accent and progress bar
- Midnight AMOLED — Pure black with indigo accents
- Rumble Green — Dark with Rumble's native green identity
- Site Theme Sync — Mirror Rumble's native system / dark / light setting
- Wide Layout — Full-width responsive grid on home and subscriptions
- Auto-Hide Header — Fade the header out, reveal on top-edge cursor
- Auto-Hide Nav Sidebar — Hide nav, reveal on left-edge hover (30-px trigger strip)
- Logo to Feed — Rumble logo navigates to Subscriptions feed
- Auto Expand — Auto-expand descriptions and comments
- Auto Load Comments — Scroll-triggered Show more comments clicks
- Notif Enhance — Themed notification dropdown + bell pulse
- Full Titles — Remove title truncation on video cards
- Title Font — Unbold + normalize title typography
Downloads & Capture
- Video Download — Download as direct MP4 or HLS-to-MP4/TS via Web Worker transmuxing. Includes an automatic Deep Scan (RUD) that probes
hugh.cdn.rumble.cloudfor every quality variant the embed API didn't surface (1080p/720p/480p/360p/240p × mp4/tar × live/vod), with live progress bar, per-row copy-link buttons, and support for TAR live-replay archives (with inline extract with 7-Zip, drop the.m3u8into VLC hint). - Low-Bitrate MP4 (for listening) — Download the smallest video variant for background audio (saved as
.mp4— honest naming; Rumble doesn't expose a pure audio track). - Video Clips — Mark In/Out on the player and export a clip as MP4 (segment slicing + transmux)
- Live DVR — Save the last 30 s / 1 m / 5 m / 10 m of a live stream as MP4
- Batch Download — Multi-select thumbnails across feeds to bulk-download direct MP4s
- Screenshot — Capture current video frame as PNG
- Share@Time — Copy video URL at current playback timestamp
- Subtitle Sidecar — Load local SRT/VTT and overlay captions on the player
- Transcripts — Clickable, searchable transcript panel synced to the player
History & Bookmarks
- Watch Progress — Save/resume position + red progress bars on thumbnails
- Watch History — Local browsable watch history with search
- Search History — Recent searches dropdown on search input
- Bookmarks — Save videos locally for later (200 max)
- Quick Save — Watch Later button on thumbnail hover
Comments & Chat
- Auto Like — One-shot auto-click of the like button on watch pages
- Comment Blocking — Per-commenter block list with inline block button on every comment (parallel to the existing chat user-block)
- Chat Enhance — @mention highlights (TreeWalker-safe — no
innerHTMLround-trip), message filter bar - Chat Scroll — Smart auto-scroll with pause on scroll-up
- Unique Chatters — Live counter of unique chatters + total messages above chat
- User Block — Per-user chat hide with inline block button on every message
- Spam Dedup — Hide recently-repeated identical messages (30-message rolling window)
- Chat Export — TXT (click) or JSON (shift-click) export including rant amounts
- Popout Chat — Open chat in a separate resizable window (uses Rumble's native popout where available)
- Timestamps — Clickable timestamps in comments and description
- Comment Nav — Navigate, expand/collapse, OP-only filter
- Comment Sort — Reorder comments: Top / New / Oldest / Controversial
- Rant Highlight — Glow rants by tier + running $ total
- Rant Persist — Keep rants visible past their expiry + per-video cache + JSON export
Feed Controls
- Channel Blocker — Block/hide channels from all feeds
- Keyword Filter — Hide videos whose titles contain blocked keywords
- Related Filter — Search and filter related sidebar videos
- Exact Counts — Show full numbers instead of 1.2K/3.5M abbreviations
Hide-X Toggles (50 modules, all opt-in)
Driven by the RX_CSS_TOGGLES registry — each toggle is a proper feature module with its own setting key, hot-reload support, and options-page card:
| Group | Count | Sample toggles |
|---|---|---|
| Main Page Layout | 25 | widenSearchBar, hideUploadIcon, hideHeaderAd, hideFeaturedBanner, hideForYouRow, hideGamingRow, hideFinanceRow, hideNewsRow, hideSportsRow, hideFooter, … |
| Video Page Layout | 5 | hideRelatedOnLive, hideRelatedSidebar, widenContent, hideVideoDescription, hidePausedVideoAds |
| Player Controls | 9 | hideRewindButton, hideCCButton, hideAutoplayButton, hideTheaterButton, hidePipButton, hideFullscreenButton, hidePlayerRumbleLogo, hidePlayerGradient, … |
| Video Buttons | 8 | hideLikeDislikeButton, hideShareButton, hideRepostButton, hideEmbedButton, hideSaveButton, hideCommentButton, hideReportButton, hidePremiumJoinButtons |
| Comments | 2 | moveReplyButton, hideCommentReportLink |
| Chat | 1 | cleanLiveChat |
Settings
Options Page (full editor)
Click the extension icon → gear button to open the dedicated options page. Modelled on Astra-Deck's settings workspace:
- App bar with version + live storage status
- Workspace hero + Open Settings Editor CTA
- 5-card stats overview (Enabled features, Storage size, Channels, Keywords, Chatters)
- Full-parity Export / Import — backups now include both
rx_settingsAND per-origin localStorage (watch progress, watch/search history, bookmarks, volume memory, rant archives). Export format:exportVersion: 2; v1 imports still work. Imports are allowlisted by key so a crafted file cannot smuggle arbitrary localStorage keys onto rumble.com. - Reset All Data broadcasts
clearLocalDatato every open Rumble tab and reports the honest "Cleared N per-site keys across M tabs" count - Settings editor modal with dirty-draft workflow: search, sidebar group nav (9 groups), chips for unsaved / needs-attention, Restore Defaults / Discard / Save toolbar, per-field Reset buttons
- Per-control editors infer from value type: toggle / number / text / textarea / list / JSON / enum-dropdown (theme & siteTheme)
- Focus trap,
beforeunloadguard on unsaved draft, live re-sync viachrome.storage.onChanged
In-page Quick Modal (on-tab)
Press Ctrl+Shift+X on any Rumble page (or shift-click the popup gear) to open the original in-page settings modal with:
- 7 categorized sidebar tabs with color-coded icons
- Theme picker with live preview dots
- Playback speed slider
- Homepage category visibility toggles
- Blocked channels / keywords / chatters chip lists
- Hot-reload: most features re-init without a page reload
Popup
Click the extension icon for quick toggles, grouped by category with enabled-count badges:
- 7 collapsible category groups
- Debounced writes (120 ms) with
pagehideflush — rapid toggles coalesce into one write - Settings gear — Opens the options page (shift-click for in-page modal)
- GitHub link — Direct link to this repository
- Update checker — Checks GitHub Releases for new versions
Install
Chrome / Edge / Brave (MV3)
- Grab
RumbleX-chrome.zipfrom Releases - Extract the zip
- Visit
chrome://extensionsand enable Developer mode - Click Load unpacked and select the extracted folder
Or drag RumbleX-v1.9.3.crx directly onto chrome://extensions (Developer mode on).
Firefox (109+)
- Download
RumbleX-firefox.zipfrom Releases - Go to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on and select
manifest.jsoninside the extracted folder
Tampermonkey (Userscript)
Install RumbleX.user.js directly — note: the userscript version lags behind the extension on download features (no Web Worker / mux.js bundle).
Tech Stack
- Vanilla JavaScript — no frameworks, no build step
- Chrome Extension Manifest V3 + Firefox Manifest V2 (parallel manifests)
chrome.storage.localfor settings persistencelocalStorage(per-origin) for watch progress, volume memory, history, rant archives- mux.js (bundled) for HLS segment transmuxing in a Web Worker
AbortController+ generation-counter guards for cancellable async work- Anti-FOUC: CSS injected at
document_start - GitHub Releases API for update checking
- Download host allowlist (
rumble.com,1a-1791.com,rumble.cloud) enforced in the background worker
Security Notes
- All download URLs are validated against a host allowlist before hitting
chrome.downloads. LiveChatEnhanceuses aTreeWalkeronTextnodes only — Rumble's chat markup is never re-parsed throughinnerHTML.- Download UI is built via DOM APIs; no network-influenced text (error messages, response bodies, CDN probe results) ever reaches the HTML parser.
- Backup imports are allowlisted:
setLocalDatarejects any key outside theRX_LOCAL_STORAGE_KEYSlist +rx_rants_prefix, so a crafted file cannot write arbitrary keys to rumble.com's origin.
Build
cd extension
./build.sh # produces RumbleX-chrome.zip and RumbleX-firefox.zip in the parent dir
Requires zip (Git Bash on Windows: use PowerShell Compress-Archive fallback). See CHANGELOG.md for per-version details.
License
MIT