YouTube Music Remover is a Manifest V3 browser extension for YouTube that separates vocals and speech from background music.
The current codebase supports two provider pipelines:
direct_link: the provider receives the YouTube link and processes it remotelyupload_audio: the extension downloads the audio, splits it into chunks, uploads the chunks, and streams cleaned results progressively
Current providers:
SoundBoost->direct_linkRemove Music->upload_audio
The extension includes English and Arabic support, an in-player action button, auto-start, cached results, and playback controls that let the user decide whether to keep the original video audio playing while upload-based processing runs.
The repository currently matches extension version 4.3.0 from manifest.json.
- In-player YouTube control for starting or stopping the music-removal flow
- Two explicit provider pipelines for current and future integrations
- Chunked upload pipeline for providers that need local audio uploads
- Direct-link pipeline for providers that process from the YouTube URL
- Progressive playback for chunked results when ready
- Auto-start on page load
- Ask-before-starting playback behavior
- English and Arabic UI with RTL support
- Cached cleaned-audio result URLs for faster reuse
Direct-link providers process the video from its original YouTube URL.
Chunk Durationis disabled- A warning is shown in the popup because very long videos may take longer
- The playback-behavior preference is still available
Upload-audio providers require the extension to download and split audio locally before sending it to the provider.
Chunk Durationis enabled- Playback can begin progressively as chunks become ready
- The same playback-behavior preference remains available
- Open a YouTube watch page
- Click the extension button in the player, or enable auto-start
- The provider imports the YouTube URL remotely
- The extension polls provider status
- The cleaned vocals URL is streamed back into the player
- Open a YouTube watch page
- Click the extension button in the player, or enable auto-start
- The extension downloads the audio source
- Audio is split into chunks according to
Chunk Duration - Chunks are uploaded and processed in parallel
- Cleaned chunks are streamed back progressively and synced to the video
- Download or clone this repository
- Open
chrome://extensions/ - Enable
Developer mode - Click
Load unpacked - Select the project folder
The extension is intended for Chromium-based browsers that support Manifest V3 and the required Chrome extension APIs.
The popup currently exposes:
Extension EnabledAuto-Start on Page LoadLanguageProviderChunk DurationAsk Before Starting
Important behavior:
Chunk Durationis available only for upload-audio providersAsk Before Startingremains available for both provider typesPlay Immediatelyis chosen through the in-player prompt rather than the popup
youtube-music-remover/
|-- _locales/
|-- icons/
|-- background.js
|-- content-ui-helpers.js
|-- content.js
|-- i18n.js
|-- manifest.json
|-- offscreen.html
|-- popup.html
|-- popup.js
|-- provider-catalog.js
`-- styles.css
Key files:
provider-catalog.js: shared provider definitions and capability metadatabackground.js: provider orchestration, caching, download/upload handling, and job lifecyclecontent.js: player UI, prompt behavior, playback sync, and streamingpopup.js: settings UI and provider-aware controlsi18n.js: runtime translations shared across popup, content, and background_locales/: Chrome extension locale resources
The extension currently supports:
- English
- Arabic
Localization is split into two layers:
- Chrome locale metadata in
_locales/ - shared runtime strings in
i18n.js
If you add new user-facing text, update both places when needed so popup text, in-player text, and extension metadata stay aligned.
- The codebase is organized around provider capabilities rather than one-off provider branches
- New providers should be added through
provider-catalog.jsfirst - Direct-link and upload-audio providers should keep using the explicit pipeline split already in the background worker
- Manual verification on real YouTube pages is important for UI placement, provider flow, and playback timing
Contribution guidance lives in CONTRIBUTING.md.
This project is licensed under the MIT License. See LICENSE.