THANK YOU TO MY FRIEND CRY-ABOUT-IT FOR HELPING ME WITH THIS PROJECT. I AM VERY GRATEFUL THAT HE HELPED ME WITH SOME ISSUES I WAS FACING WITH THE CODE TO MAKE THIS EXTENSION BETTER THAN IT WAS BEFORE. MANY SLEEPLESS MINUTES HAVE GONE INTO MAKING THIS EXTENSION ONG ON ZAZA.
YT Search Helper is an independent browser extension that normalizes YouTube search navigation in Safari/Chromium browsers and reduces redirect noise.
This project is not affiliated with, endorsed by, or sponsored by YouTube or Google.
- Detects YouTube search-related surfaces (
/results,/shorts). - Parses URL state with a dedicated parser.
- Produces redirect/no-op decisions through a pure correction engine.
- Prevents redirect loops with a session-scoped navigation gate.
- Stores user preferences using extension sync storage.
- Manifest V3
- TypeScript
- Vite + React
- ESLint + Prettier
- Vitest
src/worker/serviceWorkerEntry.ts- service worker entrysrc/inject/contentEntry.ts- content script entry (must stay distinct from the worker filename for CRXJS)src/inject/pageObserver.ts- page-level controllersrc/inject/urlState.ts- URL parsing/normalization inputsrc/inject/correctionEngine.ts- pure decision enginesrc/inject/navigationGate.ts- loop preventionsrc/shared/contracts.ts- shared types/contractssrc/shared/storage.ts- storage adaptersrc/options/*- settings UIsrc/popup/*- popup UI
npm install
npm run buildOther commands:
npm run dev- watch buildnpm run typechecknpm run testnpm run lintnpm run format
- No telemetry is collected.
- Settings are stored locally via browser extension sync storage.