xmpd/README.md

2.6 KiB

(XMPD) Xor64 Music Player/Downloader

An open source music downloader AND player (soon (TM))

Design

Written in rust, it tries to be fast, reliable, and actually useful, as it doesnt stream the music from a server where it could be deleted and lost forever. It uses egui for a crossplatform frontend that makes it possible to run almost anywhere. The music is downloaded via ytdlp and spotdl, and converted to your favorite format via ffmpeg

Offline usage

Your whole music library is downloaded to your music folder (unless its being ran in standalone mode). Saved in your selected format. All of the info required to download your songs is stored in 1 file (!). So all you need to backup all of your music is just 1 relatively small file AND you get the added benefit of easily moving your music between devices with just 1 manifest file, 1 executable (and 3 dependencies). Just press download all and see as all of your playlists appear in your hard drive, powered by Open Source software.

Dependencies

ffmpeg: To convert your music files to your desired format.
spotdl: To download music from spotify, because ofcourse spotify had to be the special child
ytdlp: To download music from every single other source

The rust dependencies can be found in the Cargo.toml file.

Installation

Just run xmpd-setup-{version}.sh for GNU/Linux or xmpd-setup-{version}.ps1 for Windows!

Compilation

Building the amazing xmpd executable is really simple:

  • make sure rust is installed by running cargo --help
  • clone the git repo by running git clone https://git.mcorangehq.xyz/XOR64/xmpd.git in your desired directory
  • run cargo build --release
  • The executable should be in ./target/release/xmpd

NOTE: If you run the executable from the terminal it will start downloading all of your songs, to open the gui run xmpd gui, for more info run xmpd --help

Contributing

Fork and clone your repo, you will probably want to use ssh for cloning. After adding your features or bugfixes push the changes to your fork. After making sure xmpd works fine, and you havent found any bugs, make a pull request on https://git.mcorangehq.xyz/XOR64/xmpd/pulls If we approve your changes it will be pushed to the main branch, and added to the contributors!

Current todos are stored in DEV.md

Licensing

See LICENSE.md for the licensing terms