Youtube Music

YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)
Alternatives To Youtube Music
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Python28,422
a day ago310mitPython
My Python Examples
Lux22,15287 days ago37July 06, 2023460mitGo
👾 Fast and simple video download library and CLI tool written in Go
Hitomi Downloader16,579
15 hours ago2,507Python
:cake: Desktop utility to download images/videos/music/text from various websites, and more.
Spotiflyer9,044
a month ago252gpl-3.0Kotlin
Kotlin Multiplatform Music Downloader, Supports Spotify / Gaana / Youtube Music / Jio Saavn / SoundCloud.
Youtube Dl Gui8,636
110 months ago2July 19, 2017193unlicensePython
A cross platform front-end GUI of the popular youtube-dl written in wxPython.
Youtubedownloader5,291
2 days ago5mitC#
Downloads videos and playlists from YouTube
Youtube Music4,083
2 days ago327mitJavaScript
YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)
Yt Dlc2,50562 years ago20November 11, 2020123unlicensePython
media downloader and library for various sites.
Youtubeexplode2,49433194 days ago140August 18, 20232mitC#
Abstraction layer over YouTube's internal API
Youtubedl Material2,058
20 days ago215mitTypeScript
Self-hosted YouTube downloader built on Material Design
Alternatives To Youtube Music
Select To Compare


Alternative Project Comparisons
Readme

YouTube Music

GitHub release GitHub license XO code style Build status Known Vulnerabilities GitHub All Releases AUR

Screenshot

Electron wrapper around YouTube Music featuring:

  • Native look & feel, aims at keeping the original interface
  • Framework for custom plugins: change YouTube Music to your needs (style, content, features), enable/disable plugins in one click

Download

You can check out the latest release to quickly find the latest version.

Arch Linux

Install the youtube-music-bin package from the AUR. For AUR installation instructions, take a look at this wiki page.

MacOS

If you get an error "is damaged and cant be opened." when launching the app, run the following in the Terminal:

xattr -cr /Applications/YouTube\ Music.app

Windows

You can use the Scoop package manager to install the youtube-music package from the extras bucket.

scoop bucket add extras
scoop install extras/youtube-music

Alternately you can use Winget, Windows 11s official CLI package manager to install the th-ch.YouTubeMusic package.

Note: Microsoft Defender SmartScreen might block the installation since it is from an "unknown publisher". This is also true for the manual installation when trying to run the executable(.exe) after a manual download here on github (same file).

winget install th-ch.YouTubeMusic

Available plugins:

  • Ad Blocker: Block all ads and tracking out of the box

  • Audio Compressor: Apply compression to audio (lowers the volume of the loudest parts of the signal and raises the volume of the softest parts)

  • Blur Nav Bar: makes navigation bar transparent and blurry

  • Bypass age restrictions: bypass YouTube's age verification

  • Captions selector: Enable captions

  • Compact sidebar: Always set the sidebar in compact mode

  • Crossfade: Crossfade between songs

  • Disable Autoplay: Makes every song start in "paused" mode

  • Discord: Show your friends what you listen to with Rich Presence

  • Downloader: downloads MP3 directly from the interface (youtube-dl)

  • Exponential Volume: Makes the volume slider exponential so it's easier to select lower volumes.

  • In-App Menu: gives bars a fancy, dark look

    (see this post if you have problem accessing the menu after enabling this plugin and hide-menu option)

  • Last.fm: Scrobbles support

  • Lyrics Genius: Adds lyrics support for most songs

  • Navigation: Next/Back navigation arrows directly integrated in the interface, like in your favorite browser

  • No Google Login: Remove Google login buttons and links from the interface

  • Notifications: Display a notification when a song starts playing (interactive notifications are available on windows)

  • Picture in picture: allows to switch the app to picture-in-picture mode

  • Playback Speed: Listen fast, listen slow! Adds a slider that controls song speed

  • Precise Volume: Control the volume precisely using mousewheel/hotkeys, with a custom hud and customizable volume steps

  • Quality Changer: Allows changing the video quality with a button on the video overlay

  • Shortcuts: Allows setting global hotkeys for playback (play/pause/next/previous) + disable media osd by overriding media keys + enable Ctrl/CMD + F to search + enable linux mpris support for mediakeys + custom hotkeys for advanced users

  • Skip-Silences - Automatically skip silenced sections

  • SponsorBlock: Automatically Skips non-music parts like intro/outro or parts of music videos where the song isn't playing

  • Taskbar Media Control: Control playback from your Windows taskbar

  • Touchbar: Custom TouchBar layout for macOS

  • Tuna-OBS: Integration with OBS's plugin Tuna

  • Video Toggle: Adds a button to switch between Video/Song mode. can also optionally remove the whole video tab

  • Visualizer: Different music visualizers


  • Auto confirm when paused (Always Enabled): disable the "Continue Watching?" popup that pause music after a certain time

If Hide Menu option is on - you can show the menu with the alt key (or ` [backtick] if using the in-app-menu plugin)

Themes

You can load CSS files to change the look of the application (Options > Visual Tweaks > Themes).

Some predefined themes are available in kerichdev/themes-for-ytmdesktop-player.

Dev

git clone https://github.com/th-ch/youtube-music
cd youtube-music
yarn
yarn start

Build your own plugins

Using plugins, you can:

  • manipulate the app - the BrowserWindow from electron is passed to the plugin handler
  • change the front by manipulating the HTML/CSS

Creating a plugin

Create a folder in plugins/YOUR-PLUGIN-NAME:

  • if you need to manipulate the BrowserWindow, create a file back.js with the following template:
module.exports = win => {
	// win is the BrowserWindow object
};
  • if you need to change the front, create a file front.js with the following template:
module.exports = () => {
	// This function will be called as a preload script
	// So you can use front features like `document.querySelector`
};

Common use cases

  • injecting custom CSS: create a style.css file in the same folder then:
const path = require("path");
const { injectCSS } = require("../utils");

// back.js
module.exports = win => {
	injectCSS(win.webContents, path.join(__dirname, "style.css"));
};
  • changing the HTML:
// front.js
module.exports = () => {
	// Remove the login button
	document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
};
  • communicating between the front and back: can be done using the ipcMain module from electron. See utils.js file and example in navigation plugin.

Build

  1. Clone the repo
  2. Run yarn to install dependencies
  3. Run yarn build:OS
    • yarn build:win - Windows
    • yarn build:linux - Linux
    • yarn build:mac - MacOS

Builds the app for macOS, Linux, and Windows, using electron-builder.

Tests

yarn test

Uses Playwright to test the app.

License

MIT th-ch

Popular Downloader Projects
Popular Youtube Projects
Popular Networking Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Node
Plugin
Youtube
Downloader
Music Player
Youtube Dl
Adblock
Youtube Downloader
Adblocker
Youtube Player
Touchbar