Open source Yandex.Music client / Music player

levovix a62f2fa5f6 0.4.1 3 weeks ago
.github 003a751093 update: issue templates 1 year ago
qml ce2fd4ce06 fix/add: remote media player (mpris) 11 months ago
resources 402756df06 change/refactor: rewrite DPage.qml in Nim 1 year ago
src 6afba9b6ff fix: compilation error on nim 2.2.0 3 weeks ago
translations 6afba9b6ff fix: compilation error on nim 2.2.0 3 weeks ago
.gitignore e6bf835cdb doc: add instruction to compiling from source code on linux 2 years ago
DMusic.nimble 6afba9b6ff fix: compilation error on nim 2.2.0 3 weeks ago
LICENSE 90950fd8b3 Add license 3 years ago
dmusic.rc 3d2d119f7f add: icon 3 years ago
org.DTeam.DMusic.yml ce2fd4ce06 fix/add: remote media player (mpris) 11 months ago
qml.qrc 402756df06 change/refactor: rewrite DPage.qml in Nim 1 year ago
readme.md a62f2fa5f6 0.4.1 3 weeks ago

readme.md

DMusic

DMusic: open source Yandex.Music client / music player

Uses unoffical Yandex.Music Api translated from Python to Nim

Screenshot

Version    Nim QML    Code size

Installation

  • See releases

  • Compile for Linux (from source code)

Install Nim

  yay -S choosenim-bin
  choosenim stable

Download and compile DMusic

  git clone https://github.com/levovix0/DMusic
  cd DMusic
  nimble install  # result will be ~/.nimble/bin/dmusic

If you have Qt in non-standard location, specify -d:qtInclude:path/to/qt/include, -d:qtLib:path/to/qt/lib and -d:qtBin:path/to/qt/bin in nimble install BEFORE word "install"

Add nimble dir to path (bash):

  echo "export PATH='\$PATH:~/.nimble/bin/dmusic'" >> ~/.bashrc

Add nimble dir to path (fish):

  fish_add_path ~/.nimble/bin/dmusic
  • AUR (from source code), see package

    yay -S dmusic
    
  • Cross-compile to Windows (requires Linux)

Install all from "Compile from source code" and download DMusic sources, then

  nimble buildWindows

all sholud prombably myabe work automatically...

result will be in build-windows/DMusic and build-windows/DMusic.zip

  • (NOT WORK NOW) Flatpak (from source code)

    git clone https://github.com/levovix0/DMusic
    cd DMusic
    flatpak install org.kde.Sdk/x86_64/5.15-23.08
    flatpak install org.kde.Platform/x86_64/5.15-23.08
    flatpak-builder --user --install --force-clean build-flatpak org.DTeam.DMusic.yml
    
  • (DEPRECATED) Compile for source code on Windows

    see wiki

Compile flags

-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 >= 2.0.0
  • Qt == 5.15.2 (declarative, imageformats, graphicaleffects, multimedia, quickcontrols, quickcontrols2, svg)
  • TagLib

Contributions

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
  • Add/fix translations (see translations directory, translations is made via localize)
    • 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
  • Documentation
  • Optimization
    • Force Qml to compile to C++ at compile time instead of be interpreted like js in runtime
  • Add integrations to other music streaming platforms (for example, soundcloud, spotify, etc)
  • Design (pin figma project to issue or something like it)
  • Make better Qt wrapper (see my wrapper)
  • Create simpler way to build DMusic on Windows
  • Port DMusic on other platforms
  • Create any Qt infrastructure replacement (this includes: easy 2d gpu rendering, components, markup language/macros, audio output, etc)
    Qt is not made for Nim
  • Make cool site that adverts DMusic
  • Make DMusic legal?

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.