- JavaScript 62.1%
- CSS 29.4%
- HTML 4.3%
- Nix 4.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| icons | ||
| options | ||
| popup | ||
| src | ||
| .envrc | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| manifest.json | ||
| README.md | ||
BetterView
A free, open source Firefox extension that strips YouTube's algorithmic attention traps: recommendations, Shorts, autoplay, end-screen suggestion cards, and more. Every feature is an individual toggle — nothing is forced on you beyond the defaults.
Independent implementation; not affiliated with, derived from, or a fork of any other similarly-named extension.
Features
| Toggle | Default | What it does |
|---|---|---|
| Home | ||
| Hide homepage recommendations | on | Replaces the algorithmic home feed with a link to Subscriptions |
| Redirect homepage to Subscriptions | off | Skips the home feed, lands you on /feed/subscriptions |
| Hide topic/category chip bar | on | Hides the row of algorithmic topic chips above the feed |
| Videos per row on homepage | auto | Forces 2–10 columns instead of YouTube's responsive default |
| Sidebar | ||
| Hide Subscriptions list | off | Hides the Subscriptions section + channel list |
| Hide "You" section | off | Hides Your channel/History/Playlists/Watch later/etc. |
| Hide "Explore" section | off | Hides Explore/Trending/Music/Gaming links |
| Header | ||
| "Ask YouTube" AI button | off | Hides the AI search button next to the search bar |
| Microphone / voice search | off | Hides the voice search button |
| Create button | off | Hides the + Create button |
| Notifications bell | off | Hides the bell icon |
| Player | ||
| Hide related / up next videos | on | Hides the suggested-videos sidebar next to the player |
| Hide end-screen suggestions | on | Removes suggestion cards/grid shown when a video ends |
| Disable autoplay | on | Keeps "Autoplay next video" switched off |
| Hide comments | off | Hides the comments section |
| Content | ||
| Hide Shorts | on | Removes the Shorts shelf/sidebar link; Shorts URLs open as normal videos |
| Hide auto-generated Mixes | on | Hides algorithmic Mix/Radio playlists |
| Hide extra shelves | on | Hides merch shelves and similar promo content (best effort) |
All settings sync across your Firefox devices via storage.sync and apply
live to open tabs — no reload required.
The Sidebar and Header toggles match elements by their visible text or
aria-label (via src/content.js's hideSidebarSection / hideMastheadButton
helpers) rather than a fixed custom-element selector, since YouTube doesn't
expose stable tag names for them. This is more resilient to internal markup
churn than the CSS-only toggles, but is still heuristic — report back (or
open a PR) if one doesn't match your current YouTube layout.
Developing
A Nix flake pins the toolchain (web-ext, Firefox, ImageMagick):
nix develop
web-ext lint --source-dir betterview
web-ext run --source-dir betterview -t firefox-desktop # live-reloads on save
web-ext build --source-dir betterview -a dist # produces dist/*.zip
No flake/Nix? Any recent web-ext (from npm: npm i -g web-ext) works the
same way.
Installing without the add-on store
Firefox requires signed extensions for permanent installs. For local/personal use without signing:
- Open
about:debugging#/runtime/this-firefox - "Load Temporary Add-on…" → select
manifest.json - It stays installed until Firefox restarts (re-load after each restart), or
use
web-ext runfor the same effect with auto-reload during development.
To install permanently without the public add-on store, submit the built zip
to addons.mozilla.org as an unlisted add-on — Mozilla signs it for free
and you self-distribute the signed .xpi.
Contributing
YouTube's DOM (the ytd-* custom elements this relies on) changes without
notice; selectors in src/content.css may need periodic updates. PRs welcome.
License
MIT — see LICENSE.