pear-desktop

Ochiq manbalardan

Pear 🍐 — musiqa pleyeri uchun kengaytma

Mashina tarjimasi · Asl matnni koʻrsatish

Pear 🍐 is extension for music player

IlovaKategoriya: Desktop ilovalar · Audio · Video va pleyerlarOpen sourcemaʼlumot tekshirilgan: 15-okt, 2026

Sharh

  • desktop-app
  • electron
  • linux
  • mac
  • macosx
  • music
  • music-player
  • music-player-application
  • music-player-extension
  • node

Oʻrnatish

Buyruqlar faqat koʻrsatiladi, marketpleys ularni bajarmaydi. Rasmiy hujjatlar bilan solishtiring.

Moslik

«Nomaʼlum» dalil topilmaganini bildiradi, mahsulot mos emasligini emas.
PlatformaHolatArxitekturaDalilIshonchlilik
WindowsMos—v3.12.0 relizidagi rasmiy yigʻma: YouTube-Music-3.12.0.exe0.60
macOSMosarm64v3.12.0 relizidagi rasmiy yigʻma: YouTube-Music-3.12.0-arm64.dmg0.70
Mos—v3.12.0 relizidagi rasmiy yigʻma: YouTube-Music-3.12.0.dmg0.60
LinuxMosarm64v3.12.0 relizidagi rasmiy yigʻma: YouTube-Music-3.12.0-arm64.AppImage0.70
Mosarmv7v3.12.0 relizidagi rasmiy yigʻma: YouTube-Music-3.12.0-armv7l.AppImage0.70
Mosx86_64v3.12.0 relizidagi rasmiy yigʻma: YouTube-Music-3.12.0-x86_64.flatpak0.70
Mos—v3.12.0 relizidagi rasmiy yigʻma: YouTube-Music-3.12.0.AppImage0.60
Node.jsMos—paket manifesti: package.json name0.60

Relizlar

tekshirilgan: 29-okt, 2026
v3.12.0Oxirgi28-iyn, 2026Rasmiy manba ↗

3.12.0 versiyasi fayllari

Marketpleys bu fayllarni saqlamaydi: yuklab olish rasmiy manbadan. Biz ularni skanerlamaganmiz.
FaylPlatformaHajmSHA-256Rasmiy manbadan yuklab olish
YouTube-Music-3.12.0-arm64.AppImagelinux · arm64 · appimage134 MBb2c1cd57b2f0…Rasmiy manba ↗
YouTube-Music-3.12.0-arm64.dmgmacos · arm64 · dmg118,4 MB1266b1efdf3c…Rasmiy manba ↗
YouTube-Music-3.12.0-armv7l.AppImagelinux · armv7 · appimage130,8 MBb53d45ca6cd9…Rasmiy manba ↗
YouTube-Music-3.12.0-x86_64.flatpaklinux · x86_64 · flatpak95 MBa70cfe291900…Rasmiy manba ↗
YouTube-Music-3.12.0.AppImagelinux · appimage135,3 MBc0975fc8aab1…Rasmiy manba ↗
YouTube-Music-3.12.0.dmgmacos · dmg119,3 MB76e4a859cfbb…Rasmiy manba ↗
YouTube-Music-3.12.0.exewindows · exe274 MB877841bdda44…Rasmiy manba ↗
YouTube-Music-Web-Setup-3.12.0.exewindows · exe665,4 KBb8edd18bec97…Rasmiy manba ↗
youtube-music-3.12.0-arm64.tar.gzNomaʼlum126,5 MBc0ebd9246714…Rasmiy manba ↗
youtube-music-3.12.0-armv7l.tar.gzNomaʼlum125,1 MB8b51f6cae702…Rasmiy manba ↗
youtube-music-3.12.0.aarch64.rpmlinux · arm64 · rpm87,8 MBd7d59487ba68…Rasmiy manba ↗
youtube-music-3.12.0.tar.gzNomaʼlum128 MB02e3cfc06803…Rasmiy manba ↗
youtube-music-3.12.0.x86_64.rpmlinux · x86_64 · rpm93,7 MBf664cffae5af…Rasmiy manba ↗
youtube-music_3.12.0_amd64.deblinux · x86_64 · deb105,8 MBcbf8996f565c…Rasmiy manba ↗
youtube-music_3.12.0_amd64.snaplinux · x86_64 · snap113,7 MB0913622fdc9a…Rasmiy manba ↗
youtube-music_3.12.0_arm64.deblinux · arm64 · deb99,4 MB02427b3e1cec…Rasmiy manba ↗
youtube-music_3.12.0_armv7l.deblinux · armv7 · deb102,6 MBba41327129a3…Rasmiy manba ↗
YouTube-Music-3.12.0-arm64.dmg.blockmapboshqa128 KBc49794c4b13f…Rasmiy manba ↗
YouTube-Music-3.12.0.dmg.blockmapboshqa130,6 KB52654083829b…Rasmiy manba ↗
latest-linux-arm.ymlboshqa557 B6e71e2e6d7e2…Rasmiy manba ↗
latest-linux-arm64.ymlboshqa716 B4246927378f8…Rasmiy manba ↗
latest-linux.ymlboshqa703 Baf2a2e20c4fa…Rasmiy manba ↗
latest-mac.ymlboshqa507 B3e73aa0ffe1d…Rasmiy manba ↗
latest.ymlboshqa1,1 KB6790755fac20…Rasmiy manba ↗
youtube-music-3.12.0-arm64.freebsdboshqa90 MB1cdecd24ce94…Rasmiy manba ↗
youtube-music-3.12.0-arm64.nsis.7zboshqa100,8 MB34ec6a7dd781…Rasmiy manba ↗
youtube-music-3.12.0-armv7l.freebsdboshqa94,4 MB03154539ac8e…Rasmiy manba ↗
youtube-music-3.12.0-ia32.nsis.7zboshqa94,3 MBd53052fd0dea…Rasmiy manba ↗
youtube-music-3.12.0-x64.nsis.7zboshqa107,9 MB0814ea41b833…Rasmiy manba ↗
youtube-music-3.12.0.freebsdboshqa96,1 MB32331971a06f…Rasmiy manba ↗

Relizlar tarixi

Sifat profili

algoritm quality-v1.0 · baholangan 15-okt, 2026
Sifat bahosi97
Xavf bahosi0
Ishonchlilik 1.00
Sifat bahosi va xavf bahosi — turli koʻrsatkichlar. Yuqori sifat xavfsizlikni kafolatlamaydi.

Baho tarkibi

Qoʻllab-quvvatlash · 2020
last activity 2 days ago
Hujjatlar · 1515
README 10959 chars, description present
Foydalanishga tayyorlik · 1515
install instructions: yes; releases: yes
Metamaʼlumotlar · 108
3/4 of description, homepage, license, topics
Relizlar · 1010
10 release(s), latest 109 days ago
Kategoriya aniqligi · 1010
classifier confidence 0.97
Ommaboplik · 1010
33774 stars (log-dampened, 10k = max)
Litsenziya aniqligi · 55
SPDX MIT
Hamjamiyat · 55
issues enabled, 2016 forks

Litsenziya

MIT
Litsenziya maʼlumrepozitoriy xostingi maʼlumotlariga koʻra

Bu katalog siyosati holati, yuridik xulosa emas.

Manbalar

github.com/pear-devs/pear-desktopAsosiy★ 33 774 yulduzfaollik: 13-okt, 2026Asosiy repozitoriy · Ishonchlilik 1.00

Sharhlar

Sharh yozish uchun kiring

Hali sharhlar yoʻq.

Muqobillar

README

pear-devs/pear-desktop dan · litsenziya MIT · yuklangan 29-okt, 2026

:pear: Pear Desktop

[GitHub release] [GitHub license] [eslint code style] [Build status] [GitHub All Releases]

[Known Vulnerabilities]

  • Native look & feel extension

[!IMPORTANT] ⚠️ Disclaimer

No Affiliation

This project, and its contributors, are not affiliated with, authorized by, endorsed by, or in any way officially connected with Google LLC, YouTube, or any of their subsidiaries or affiliates. This is an independent, non-profit, and unofficial extension developed by a team of volunteers with the goal of providing a desktop experience.

Trademarks

The names "Google" and "YouTube Music", as well as related names, marks, emblems, and images, are registered trademarks of their respective owners. Any use of these trademarks is for identification and reference purposes only and does not imply any association with the trademark holder. We have no intention of infringing upon these trademarks or causing harm to the trademark holders.

Limitation of Liability

This application (extension) is provided "AS IS", and you use it at your own risk. In no event shall the developers or contributors be liable for any claim, damages, or other liability, including any legal consequences, arising from, out of, or in connection with the software or the use or other dealings in the software. The responsibility for any and all outcomes of using this software rests entirely with the user.

Content

  • Features
  • Translation
  • Download
    • Arch Linux
    • Solus
    • MacOS
    • Windows
      • How to install without a network connection? (in Windows)
  • Themes
  • Dev
  • Build your own plugins
    • Creating a plugin
    • Common use cases
  • Build
  • Production Preview
  • Tests
  • License
  • FAQ

Translation

You can help with translation on Hosted Weblate.

Download

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

Arch Linux

Install the pear-desktop package from the AUR. For AUR installation instructions, take a look at this wiki page.

Solus

sudo eopkg install pear-desktop

macOS

You can install the app using Homebrew (see the cask definition):

brew install pear-devs/pear/pear-desktop

If you install the app manually and get an error "is damaged and can’t be opened." when launching the app, run the following in the Terminal:

/usr/bin/xattr -cr /Applications/Pear\ Desktop.app

Windows

You can use the Scoop package manager to install the pear-desktop package from the extras bucket.

scoop bucket add extras
scoop install extras/pear-desktop

Alternately you can use Winget, Windows 11s official CLI package manager to install the pear-devs.pear-desktop 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 pear-devs.pear-desktop
How to install without a network connection? (in Windows)
  • Download the *.nsis.7z file for your device architecture in release page.
    • x64 for 64-bit Windows
    • ia32 for 32-bit Windows
    • arm64 for ARM64 Windows
  • Download installer in release page. (*-Setup.exe)
  • Place them in the same directory.
  • Run the installer.

Themes

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

Some predefined themes are available in https://github.com/kerichdev/themes-for-ytmdesktop-player.

Dev

git clone https://github.com/pear-devs/pear-desktop
cd pear-desktop
pnpm install --frozen-lockfile
pnpm dev

Instead of installing pnpm on your system, you can also use devcontainers. You can use devcontainers either as a development environment in VS Code, or as a way to easily build the project without installing dependencies on your host system.

Note that this has it's own limitations (for example, GUI doesn't work on, at least some, Linux hosts).

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 src/plugins/YOUR-PLUGIN-NAME:

  • index.ts: the main file of the plugin
import style from './style.css?inline'; // import style as inline

import { createPlugin } from '@/utils';

export default createPlugin({
  name: 'Plugin Label',
  restartNeeded: true, // if value is true, ytmusic show restart dialog
  config: {
    enabled: false,
  }, // your custom config
  stylesheets: [style], // your custom style,
  menu: async ({ getConfig, setConfig }) => {
    // All *Config methods are wrapped Promise<T>
    const config = await getConfig();
    return [
      {
        label: 'menu',
        submenu: [1, 2, 3].map((value) => ({
          label: `value ${value}`,
          type: 'radio',
          checked: config.value === value,
          click() {
            setConfig({ value });
          },
        })),
      },
    ];
  },
  backend: {
    start({ window, ipc }) {
      window.maximize();

      // you can communicate with renderer plugin
      ipc.handle('some-event', () => {
        return 'hello';
      });
    },
    // it fired when config changed
    onConfigChange(newConfig) { /* ... */ },
    // it fired when plugin disabled
    stop(context) { /* ... */ },
  },
  renderer: {
    async start(context) {
      console.log(await context.ipc.invoke('some-event'));
    },
    // Only renderer available hook
    onPlayerApiReady(api, context) {
      // set plugin config easily
      context.setConfig({ myConfig: api.getVolume() });
    },
    onConfigChange(newConfig) { /* ... */ },
    stop(_context) { /* ... */ },
  },
  preload: {
    async start({ getConfig }) {
      const config = await getConfig();
    },
    onConfigChange(newConfig) {},
    stop(_context) {},
  },
});

Common use cases

  • injecting custom CSS: create a style.css file in the same folder then:
// index.ts
import style from './style.css?inline'; // import style as inline

import { createPlugin } from '@/utils';

export default createPlugin({
  name: 'Plugin Label',
  restartNeeded: true, // if value is true, pear-desktop will show a restart dialog
  config: {
    enabled: false,
  }, // your custom config
  stylesheets: [style], // your custom style
  renderer() {} // define renderer hook
});
  • If you want to change the HTML:
import { createPlugin } from '@/utils';

export default createPlugin({
  name: 'Plugin Label',
  restartNeeded: true, // if value is true, ytmusic will show the restart dialog
  config: {
    enabled: false,
  }, // your custom config
  renderer() {
    console.log('hello from renderer');
  } // define renderer hook
});
  • communicating between the front and back: can be done using the ipcMain module from electron. See index.ts file and example in sponsorblock plugin.

Build

  1. Clone the repo
  2. Follow this guide to install pnpm
  3. Run pnpm install --frozen-lockfile to install dependencies
  4. Run pnpm build:OS
  • pnpm dist:win - Windows
  • pnpm dist:linux - Linux (amd64)
  • pnpm dist:linux:deb-arm64 - Linux (arm64 for Debian)
  • pnpm dist:linux:rpm-arm64 - Linux (arm64 for Fedora)
  • pnpm dist:mac - macOS (amd64)
  • pnpm dist:mac:arm64 - macOS (arm64)

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

Building in devcontainer

  1. Clone the repo;
  2. Open the folder in VS Code;
  3. Reopen in container when prompted;
  4. Run pnpm build as above (choosing the desired target);
  5. Collect the built files from the dist folder.

Since devcontainer uses a mount for the workspace, the built files will be available on the host system as well.

Production Preview

pnpm start

Tests

pnpm test

Uses Playwright to test the app.

License

MIT © pear-devs

FAQ

Why apps menu isn't showing up?

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

Repozitoriyni ochish ↗