A browser extension for Chromium-based browsers (Brave, Chrome) that lets you toggle YouTube customizations on and off, plus the public landing page for it at glhrmbg.github.io/yt-experience.
Hide Shorts — independently toggle Shorts off in:
- the sidebar (mini and expanded)
- search results & home feed grids
- channel page tabs
- the "Shorts" filter chip
Hide recommendations sidebar — hides the up-next carousel and related videos list next to the player. On by default. On live streams, chat stays visible and follows YouTube's own open/close chat button instead of disappearing with the rest of the sidebar.
- Download the latest
YTXP-vX.Y.Z.zipfrom the Releases page and unzip it. - Open
brave://extensions(orchrome://extensions) and enable Developer mode. - Click Load unpacked and select the unzipped folder.
- Open the extension's popup on any tab to toggle features on or off.
This is an npm workspaces monorepo:
extension/ MV3 extension (TypeScript, Vite, CRXJS)
site/ Public landing page (Astro), deployed to GitHub Pages
npm install
npm run dev:extension # extension dev build (watch mode)
npm run typecheck # extension typecheck
npm run build:extension # extension production build -> extension/dist
npm run dev:site # site dev server
npm run build:site # site production build -> site/dist
To load a local build of the extension: npm run build:extension, then load extension/dist
as an unpacked extension (see Install above).
Features live in extension/src/shared/features/<id>/, each exporting a Feature object
(id, group, name, description, defaultEnabled, apply(), undo()) registered in
extension/src/shared/features/registry.ts. content/main.ts and the popup iterate the
registry generically, so adding a feature is one new module plus one registry entry.
mainis protected; changes go throughfeature/*branches and a pull request.- Pushing a
feature/*branch runs typecheck/build and auto-opens (or updates) a PR tomain. extension/package.json'sversionis the single source of truth for the extension's version - PRs touchingextension/**are blocked unless it's bumped.- Merging to
maindeploys the site (ifsite/**changed) and, on any extension change, publishes a GitHub Release (ytxp@X.Y.Z) with a downloadableYTXP-vX.Y.Z.zip.
MIT - see LICENSE.