Skip to content

🎵 Yandex.Music Desktop (un-official port of website). Please note: this is only webview port of Yandex.Music website as desktop app for macOS, Windows 10 and GNU/Linux!

License

Notifications You must be signed in to change notification settings

koddr/yandex-music-desktop

Repository files navigation

🎵 Yandex.Music Desktop (port of website)

Yandex.Music Desktop (port of website)

Please note: this is only webview port of Yandex.Music website as desktop app!


Looking for a similar desktop app for Yandex.Radio?


💭 The Why?

Yandex.Music logo

I love listen music 🥰 and always want to do it as easy as possible. Concept of Yandex.Music service (web for desktop clients and app for mobile) are great, but not so really.

  • First (and most important): I would like to always keep application music app on hand while working at Mac/MacBook. Quickly click on the icon in macOS dock, open app, switch to another song and collapse again. At the same time, without opening a browser and not looking for the desired tab with Yandex.Music.
  • Second (and important too): my smartphone is always busy with other applications that use headphones with mic, like Skype, Zoom, Discord, mobile calls and so on. In order not to run into browser, look for a tab and pause music. Just took off these headphones and put on others!
  • Third (and no less important): as an active macOS user, I got used to native desktop apps for listening music (for example, built-in Apple iTunes) and place it on side-mode with another apps (like Telegram) on a separate workspace.

Therefore, I was very upset that Yandex.Music does not have a macOS (or Windows/Linux) desktop application... and created this port of the official Yandex.Music website! 😉

🔗 Download latest version:

⚙️ Under the hood

Since this is an open source project, you can easily see how it all actually works. The code is written with Go (Golang) 1.11.x and using Go Modules.

Yandex.Music Desktop source code
package main

import "github.com/zserge/webview"

func main() {
	// URL params
	p := "origin=music_button-header&retpath=https%3A%2F%2Fmusic.yandex.com%2Fhome"

	// Init app
	w := webview.New(false)
	defer w.Destroy()

	// Settings
	w.SetTitle("Yandex.Music Desktop")
	w.SetSize(800, 960, webview.HintNone)
	w.Navigate("https://passport.yandex.com/auth?" + p)

	// Run app
	w.Run()
}

But all magic is done by absolutely awesome webview module by Serge Zaitsev.

More about webview module

A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Nim bindings, Haskell and C# bindings available.

It supports two-way JavaScript bindings (to call JavaScript from C/C++/Go and to call C/C++/Go from JavaScript).

It uses Cocoa/WebKit on macOS, gtk-webkit2 on Linux and MSHTML (IE10/11) on Windows.

zserge/webview demo

Installation .dmg images for macOS was created by node-appdmg (many thx to Linus Unnebäck).

MS Windows 10 version available thanks to xgo (Go CGO cross compiler by Péter Szilágyi).

GNU/Linux version compiled and tested at Arch Linux (Manjaro 20).

For developers

Click to view
  1. Clone this repository and go to folder yandex-music-desktop:
git clone https://github.com/koddr/yandex-music-desktop.git
cd yandex-music-desktop
  1. Change anything you want 👌
  2. Build app binary again for macOS (it's required Go 1.11+):
make build-macos # build .app for macOS
  • OR for GNU/Linux:
make build-linux # build binary file for Linux
  • OR for Windows 10:
go get github.com/karalabe/xgo # install xgo cross compiler
make build-windows # build .exe for Windows 10
  1. Go to ./build/<macOS|Linux|Windows> folder
  • Copy Yandex.Music Desktop.app to your /Applications folder on macOS:
sudo cp -R ./build/macOS/Yandex.Music\ Desktop.app /Applications
  • OR copy yamusic_desktop binary to your Linux system (/usr/share/bin) and create symlink to it.
  • OR copy Yandex.Music Desktop.exe to anything you want on Windows 10 system!

(Optional) Create macOS installation images

  • Install node-appdmg (required Node.js and npm):
npm install -g appdmg
  • Create macOS installation image (.dmg):
make installer-macos # for macOS 10.11+
  • You can found created image into ./releases/macOS folder.

(Optional) Create tar-archive for GNU/Linux

  • Create tar-archive:
make archive-tar-linux # for Linux
  • You can found created TAR into ./releases/Linux folder.

(Optional) Create zip-archive for Windows 10

  • Create zip-archive:
make archive-zip-windows # for Windows 10
  • You can found created ZIP into ./releases/Windows folder.

For designers

At ./static/macOS folder you can found layered Adobe Photoshop source file (.psd) of macOS installation image: yamusic_desktop.background.psd (CC0 1.0 Universal).

For Windows 10 users, who removed Microsoft Edge browser

Yandex.Music Desktop app running from default OS webview layer, if you removed Edge browser — webview layer is Internet Explorer 11 (not Google Chrome/FireFox/Opera/etc., because it's third-party software for Windows!).

I check it from my test-stand with Windows 10 Pro x64 (version 1903, OS build 18362.535)

On screen (from left to right): Yandex.Music Desktop app, Internet Explorer 11, MS Edge 18:

Capture

And, I thought, web site Yandex.Music not working in Internet Explorer 11 without Flash player (see this), who not installed by default with system.

Developers

The author (Vic Shóstak) of this Yandex.Music desktop port is not responsible for work of this desktop application, because YANDEX LLC may changes the way it provides content and/or releases its own desktop application.

Project assistance

If you want to say «thank you» or/and support active development Yandex.Music Desktop:

  1. Add a GitHub Star to project.
  2. Twit about project on your Twitter.
  3. Donate some money to project author via PayPal: @paypal.me/koddr.
  4. Join DigitalOcean at my referral link (your profit is $100 and I get $25).

Thanks for your support! 😘 Together, we make this project better every day.

DigitalOcean Referral Badge

TODO

  • Add icon for Windows 10 version
  • Fix low quality rendering Cocoa/WebKit on macOS

⚠️ Terms of Use of Yandex.Music

All logos, images and Yandex.Music service website — belong to their respective owners, namely YANDEX LLC.

If you download, install and run Yandex.Music Desktop application from current repository, you're already agree with official Terms of Use of Yandex.Music: EN, RU, BY, KZ.

License

Yandex.Music Desktop by Vic Shóstak is an open source software under MIT license.

Background image for macOS installer is designed by Vic Shóstak and under CC0 1.0 Universal license protection.