Skip to content

gormanity/ytm-enhancer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

771 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YTM Enhancer logo

YTM Enhancer

CI Latest release License: MIT Browsers: Chrome, Edge, Firefox Privacy-first: no analytics

YTM Enhancer supercharges YouTube Music to make it the best browser-based media player.

It upgrades YouTube Music in your browser with smarter controls, automation, and visual enhancements, without forcing you into a replacement app or wrapper.

If you love the ubiquity of YouTube Music's service but want a more fully-featured listening experience, this extension is for you.

Why YTM Enhancer

  • Adds missing quality-of-life features from other media players
  • Improves daily listening flow with fewer clicks and better controls
  • Keeps YouTube Music in your browser without replacing the native app
  • Manage multiple YouTube Music tabs, effortlessly switching and controlling playback
  • Private by design: no analytics, no tracking, and no external backend services.
  • Supports all major browsers: Chrome, Edge, and Firefox

Install

Install YTM Enhancer from your browser's extension store:

Browser Store
Chrome Chrome Web Store
Edge Microsoft Edge Add-ons
Firefox Firefox Add-ons

Feature Highlights

Feature Why You Want It
Playback Controls Control playback, switch YTM tabs, seek, adjust volume, change speed/quality, and toggle shuffle/repeat from one panel.
Auto Play Open YouTube Music and have playback start automatically when browser policy allows it.
Auto Skip Disliked Automatically skip disliked tracks so your playlists stay great start to finish.
Audio Visualizer Add responsive visualizer overlays and tune style, color, surface, and intensity.
Hotkeys Control playback, focus YouTube Music, or trigger module actions from any app.
Mini Player Open a compact Picture-in-Picture control window while multitasking.
Notifications Get desktop updates on track changes and playback resumption with custom detail.
Sleep Timer Stop playback by duration or clock time so your queue does not run all night.
About Find version details, support links, privacy information, and store pages.

Browser Compatibility Notes

Mini Player's extension PiP window depends on the experimental Document Picture-in-Picture API. When that API is unavailable, YTM Enhancer disables the extension PiP controls or falls back to native video PiP where practical.

Firefox users may need to enable dom.documentpip.enabled from about:config before the full Mini Player experience is available.

Manual Developer Load

Use manual loading when developing or testing a local build.

Prerequisites

  • mise for the pinned project toolchain

Run mise install from the repository root before installing dependencies. Without mise, use Node.js 24, pnpm 11.9.0, Go 1.24, .NET 10, actionlint 1.7.12, and VHS 0.11.0. macOS menu bar app work also requires Xcode's Swift toolchain.

Chrome / Chromium (Chrome, Brave)

Show Chrome / Chromium installation steps
  1. Clone this repository.
  2. Install dependencies: pnpm install
  3. Build Chrome output: pnpm run build:chrome
  4. Open chrome://extensions.
  5. Enable Developer mode.
  6. Click "Load unpacked".
  7. Select dist/chrome.

Edge

Show Edge installation steps
  1. Clone this repository.
  2. Install dependencies: pnpm install
  3. Build Edge output: pnpm run build:edge
  4. Open edge://extensions.
  5. Enable Developer mode.
  6. Click "Load unpacked".
  7. Select dist/edge.

Firefox

Show Firefox installation steps
  1. Clone this repository.
  2. Install dependencies: pnpm install
  3. Build Firefox output: pnpm run build:firefox
  4. Open about:debugging#/runtime/this-firefox.
  5. Click "Load Temporary Add-on".
  6. Select any file inside dist/firefox (typically manifest.json).

Privacy

YTM Enhancer is private by design. It has no analytics, no tracking, and no external backend services.

Why Each Permission Is Required

Permission Why It Is Needed
activeTab Lets the popup and hotkeys interact with your currently active YouTube Music tab when you trigger extension actions.
alarms Powers time-based automation, including Sleep Timer and background scheduling logic.
notifications Shows native desktop notifications for track changes and related playback events.
scripting Injects and runs extension scripts on YouTube Music to provide feature behavior in-page.
storage Saves your module settings locally in the browser so preferences persist.
https://music.youtube.com/* Limits extension functionality to YouTube Music pages where features are intended to run.
https://lh3.googleusercontent.com/* Loads album art assets used for now-playing and notification UI.

See PRIVACY.md for full details on data handling, permissions, and privacy guarantees.

Development

YTM Enhancer is built as a modular WebExtension. New feature work should live in module-owned code and use the shared runtime APIs and popup UI helpers.

Start with:

Common Commands

Task Command
Install pinned tools mise install
Install dependencies pnpm install
Format pnpm run format
Lint pnpm run lint
Typecheck pnpm run typecheck
Test pnpm run test
CI-equivalent check pnpm run check
Dev build for local optesting pnpm run dev:build
Render CLI demo video pnpm run cli:demo-video
Production build pnpm run build
Package store zips pnpm run package

Common commands are also available through mise, for example mise run check mise run dev-build, and mise run cli-demo-video.

Watch Builds

  • Chrome watch build: pnpm run dev:chrome
  • Edge watch build: pnpm run dev:edge
  • Firefox watch build: pnpm run dev:firefox

Contributing

Contributions are encouraged. Open an issue for bugs, UX problems, or feature requests, or open a focused PR with tests and verification notes.

See CONTRIBUTING.md for details on the module contribution workflow.

License

MIT. See LICENSE.

About

A modular, privacy-first extension for enhancing the YouTube Music web app.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages