A Brave/Chrome browser extension that cleans up YouTube and blocks distracting content. Designed to be expandable - adding a blocker for a new site requires creating a single file and a few lines in manifest.json.
| Feature | Default |
|---|---|
Redirect YouTube home (/) to Subscriptions |
✅ On |
| Hide Shorts (shelves, grid cards, nav entry, search results) | ✅ On |
| Hide sidebar recommendations & end-screen suggestions on videos | ✅ On |
All features are independently toggle-able from the toolbar popup.
- Open
brave://extensions(orchrome://extensions) - Enable Developer mode (toggle, top-right)
- Click Load unpacked
- Select this folder (
Blockadado/)
The extension activates immediately. Click the B shield icon in the toolbar to toggle features on or off.
Blockadado/
├── manifest.json # Extension manifest (Manifest V3)
├── icons/
│ └── icon.svg # Toolbar & management page icon
├── background/
│ └── background.js # Service worker - sets defaults on first install
├── content/
│ └── sites/
│ └── youtube.js # YouTube content script (redirect + CSS injection)
├── popup/
│ ├── popup.html
│ ├── popup.js
│ └── popup.css
└── options/
├── options.html
├── options.js
└── options.css
- Redirect - At
document_start, the content script checkswindow.location.pathname. If it's/, the page is replaced with/feed/subscriptions. The same check runs on every YouTube SPA navigation via theyt-navigate-finishevent. - Hide Shorts - A
<style>element with CSS:has()selectors is injected dynamically. Because it targets YouTube's custom element names (ytd-rich-shelf-renderer,ytd-reel-shelf-renderer, etc.), no MutationObserver is needed - the browser applies the rules as elements render. - Hide Suggestions - When the URL is
/watch, the CSS rule#secondary { display: none }is included in the injected stylesheet, removing the right-side recommendations panel. End-screen overlays (.ytp-ce-element) are also hidden. - All settings are stored in
chrome.storage.syncand change immediately: the content script listens tochrome.storage.onChangedand rebuilds its CSS in real time.
-
Create the content script
content/sites/reddit.js -
Register it in
manifest.json(undercontent_scripts):{ "matches": ["https://www.reddit.com/*"], "js": ["content/sites/reddit.js"], "run_at": "document_start" } -
Add the host permission in
manifest.json:"host_permissions": [ "https://www.youtube.com/*", "https://www.reddit.com/*" ]
-
Name your settings keys using the
sitename_featureNameconvention (e.g.reddit_hidePromotedPosts: true). -
Add toggles to
popup/popup.htmlandoptions/options.htmlfollowing the same pattern as the YouTube section.