Open source Yandex.Music client / Music player

levovix0 5a2ac9a8a4 refactor: separate gui framework out of DMusic 1 year ago
.github 003a751093 update: issue templates 1 year ago
qml 431bc7575f noqt: add: playing playlists and radio 1 year ago
resources 431bc7575f noqt: add: playing playlists and radio 1 year ago
src 5a2ac9a8a4 refactor: separate gui framework out of DMusic 1 year ago
translations 731c4d3d79 change <failed>: tried to migrate from qml to qt widgets 1 year ago
.gitignore f11859d9da add (sigui): layouts 1 year ago
DMusic.nimble 5a2ac9a8a4 refactor: separate gui framework out of DMusic 1 year ago
org.DTeam.DMusic.yml 9cb2a0bd40 fix: flatpak build 1 year ago
readme.md 9ce61739be add: basic youtube support 1 year ago

readme.md

DMusic

DMusic: open source Yandex.Music client / music player

Uses unoffical Yandex.Music Api translated from Python to Nim

Screenshot

Version Stable    Nim QML    Code size Total lines

Installation

  • See releases

  • Flatpak (from source code)

    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
    
  • AUR (from source code), see package

    yay -S dmusic
    
  • Compile for Linux (from source code)

    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
    

    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
    
  • Compile for Windows (from source code)
    see wiki

Compile flags

-d:debugRequests - print all requested urls to stdout

-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

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.