- Saved searches
- Use saved searches to filter your results more quickly
- License
- koddr/yandex-music-desktop
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Удобная Яндекс Музыка для Linux
- Saved searches
- Use saved searches to filter your results more quickly
- License
- levovix0/DMusic
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- readme.md
- About
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
🎵 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
koddr/yandex-music-desktop
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Updating dependencies and adding autobuild using Actions
Git stats
Files
Failed to load latest commit information.
README.md
🎵 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?
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! 😉
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.
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).
git clone https://github.com/koddr/yandex-music-desktop.git cd yandex-music-desktop
make build-macos # build .app for macOS
make build-linux # build binary file for Linux
go get github.com/karalabe/xgo # install xgo cross compiler make build-windows # build .exe for Windows 10
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
make installer-macos # for macOS 10.11+
(Optional) Create tar-archive for GNU/Linux
make archive-tar-linux # for Linux
(Optional) Create zip-archive for Windows 10
make archive-zip-windows # for Windows 10
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:
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.
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.
If you want to say «thank you» or/and support active development Yandex.Music Desktop :
- Add a GitHub Star to project.
- Twit about project on your Twitter.
- Donate some money to project author via PayPal: @paypal.me/koddr.
- 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.
⚠️ 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.
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.
About
🎵 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!
Удобная Яндекс Музыка для Linux
Уверен что среди читателей найдутся пользователи Яндекс Музыки.
У сервиса нет нативного клиента под Linux , а сайт функционалом немножечко обделен. Нельзя так просто управлять музыкой через что-то кроме как зайти на сайт и переключить , что меня не устраивает категорически.
Например у меня в DE Gnome Shell есть виджет для музыки , отображающий название , исполнителя , а так же позволяет управлять музыкой. Например тот же YouTube поддерживает , особенно если дело идет о проигрывании плейлистов с видео , или же например Spotify установленный через Flatpak , ну и локальные аудио/видео -плееры
Я хочу использовать этот виджет что бы переключать треки не заходя во вкладку вообще , оставив ее просто на фоне работать и все.
И так , немного покопавшись в интернете я нашел два метода решения этой проблемы.
Методы актуальны на момент написания статьи , однако могут быть актуальны и в будущем , если разработчики сервиса не сломают API
Клиент реализован через Nuvola Player. Хоть сам плеер и заброшен , но пока еще работает.
В первую очередь в ваш дистрибутив нужно установить flatpak
sudo apt install flatpak — Debian, Ubuntu
sudo dnf install flatpak — Fedora
sudo pacman -S flatpak — Arch and Manjaro
Затем добавляем репозитории
flatpak remote-add —if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add —if-not-exists nuvola https://dl.tiliado.eu/flatpak/nuvola.flatpakrepo
И затем в терминале выполняем
flatpak install nuvola eu.tiliado.NuvolaAppYandexMusic
У нас появится клиент Яндекс Музыки
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Open source Yandex.Music client / Music player
License
levovix0/DMusic
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
readme.md
DMusic: open source Yandex.Music client / music player
git clone https://github.com/levovix0/DMusic cd DMusic flatpak install org.kde.Sdk/x86_64/5.15-21.08 flatpak install org.kde.Platform/x86_64/5.15-21.08 flatpak-builder --user --install --force-clean build-flatpak org.DTeam.DMusic.yml
sudo pacman -S nim # or use other way to install nim in your linux distribution git clone https://github.com/levovix0/DMusic cd DMusic nimble install # result will be ~/.nimble/bin/dmusic
echo "export PATH='\$PATH:~/.nimble/bin/dmusic'" >> ~/.bashrc
fish_add_path ~/.nimble/bin/dmusic
-d:debugRequests — print all requested urls to stdout
-d:yandexMusic_oneRequestAtOnce — make only one request to yandex music at once
-d:debugYandexMusicBehaviour — debug Yandex.Music service and api behaviour
Dependencies (excluding nim libraries)
- Nim 1.6.10
- Qt 5.15.2 (declarative, imageformats, graphicaleffects, multimedia, quickcontrols, quickcontrols2, svg)
- TagLib
If you want to support this project, here is some tasks to do:
- See issues
- Any bugfixes is always accepted, just describe somewhere what you fixed
- Refactoring (my code is bad, i know it)
- if you doing big refactoring, first create issue to ask is all your changes needed, and if it is, refactor
- note: currently, there is no much text to translate there, because most of UI is translated via qt translator, but i want to migrate to localize
- Force Qml to compile to C++ at compile time instead of be interpreted like js in runtime
- original design document
- note: i already made windowing library, and i am trying to make audio output library
Just fork levovix0/DMusic to your account, make changes and submit a pull request.
Or if it requires new repository to be created, create it and add an «change dependency» issue.About
Open source Yandex.Music client / Music player