A small Chrome extension that removes YouTube Mix recommendations from YouTube pages and cleans Mix watch URLs so videos open as regular video links.
- Blocks YouTube Mix cards in recommendations.
- Blocks YouTube Mix cards in search results.
- Blocks YouTube Mix cards in watch-page sidebar and end-screen suggestions.
- Removes empty home-grid spaces left behind after Mix cards are blocked.
- Cleans Mix watch URLs by removing Mix playlist parameters.
- Includes an optional popup with counters for blocked Mixes and cleaned URLs.
- Includes bounded, local-only page diagnostics with explicit visible-card capture for missed Mixes; reports can be copied voluntarily when troubleshooting.
- Keeps the badge counter disabled by default.
- Ships 66 Chrome locale bundles; any string without a human-reviewed translation falls back to English.
Install the published extension from the Chrome Web Store.
-
Install dependencies:
npm install
-
Build the Chrome extension:
npm run build
-
Open
chrome://extensions, enable Developer mode, choose Load unpacked, and select the generateddist/directory.
Source files live in src/. Build output is generated into dist/.
Useful commands:
npm run build
npm test
npm run audit:structure
npm run verify:imports
npm run sync:chrome-locales
npm run verify:locales
npm run verify:manifest
npm run verify:release
npm run package
npm run checknpm run check runs unit tests, architecture and import-graph audits, builds the Chrome extension, runs release verification, and syntax-checks generated JavaScript files.
npm run verify:locales confirms Chrome has exactly 66 tracked locale bundles and matching Chrome Web Store listing files.
npm run verify:manifest checks generated manifest paths.
npm run verify:release runs release-facing metadata, privacy, and package-shape checks.
src/- extension source files.src/app/- thin content-script, background, and popup composition roots.src/features/- feature-owned core, content, background, and popup modules.src/platform/- Chrome and DOM boundary adapters.src/shared/- small cross-feature infrastructure with no feature policy.src/chrome/_locales/- Chrome runtime localization messages.docs/- diagnostics, Chrome Web Store automation fields, privacy form answers, and release checks.docs/storage-ownership.md- browser-storage keys, owners, schemas, migrations, retention, and quota policy.dist/- generated Chrome build.EXTENSION_SPEC.md- Chrome behavior notes and release rules.store-listing/chrome-web-store/- Chrome Web Store listing text, screenshots, promo images, and review notes.release/- locally generated upload packages.
The Firefox version now lives in its own repository:
https://github.com/molodchyk/YouTubeMixBlockerFirefox
YouTube Mix Blocker processes YouTube page data locally to provide blocking, URL cleanup, counters, and bounded page diagnostics. Settings and counters are stored locally; temporary per-tab diagnostic evidence is stored in browser session storage. None of this data is automatically transmitted, sold, or shared.
The extension uses activeTab, storage, and the https://www.youtube.com/* host permission. It does not make network requests while installed and does not use analytics, ads, tracking, content scripts on non-YouTube sites, or remote code.
The popup can copy a diagnostic page log only when the user explicitly clicks Copy page log. The user should review that report before voluntarily sharing it because it can contain YouTube URLs and visible card text.
After uninstalling the Chrome version, Chrome may open an optional feedback page at https://molodchyk.com/youtube-mix-blocker/uninstall/. The extension passes only generic source, version, and UI-language parameters to that page.
See PRIVACY.md for the full privacy policy.
See CHANGELOG.md.
Feedback is welcome. You can leave a review on the Chrome Web Store, open an issue on GitHub, or write to molodchykr@gmail.com.
If this extension saves you time and you want to support its development:
Licensed under GPL-3.0-only. See LICENSE.