Giter VIP home page Giter VIP logo

youtube-music's Introduction

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.

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 navigation bar: makes navigation bar transparent and blurry
  • 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)
  • 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
  • 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)
  • Playback speed: listen fast, listen slow! Adds a slider that controls song speed
  • Precise volume: customizable volume steps for more comfort, allows controlling the volume precisely using mousewheel
  • 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
  • SponsorBlock: skips non-music parts
  • Taskbar media control: control playback from your Windows taskbar
  • Touchbar: custom TouchBar layout for macOS
  • Video Toggle: Adds a button to switch between Video/Song mode. can also optionally remove the whole video tab

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

If using Hide Menu option - you can show the menu with the alt key (or escape if using the in-app-menu plugin)

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

yarn build

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

Tests

yarn test

Uses Playwright to test the app.

License

MIT © th-ch

youtube-music's People

Contributors

th-ch avatar araxeus avatar snyk-bot avatar semvis123 avatar dependabot[bot] avatar cpiber avatar konhi avatar itzmanish avatar hbarsaiyan avatar keyboardsheep avatar thymue avatar markbaas avatar miephd avatar sapuseven avatar mulverinex avatar nnowakowski avatar sebihotza avatar mesmerx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.