Go to file
2024-11-21 22:52:57 +02:00
.cargo Settings, took care of warnings 2024-11-15 12:33:11 +02:00
assets Actually usable????????// 2024-11-21 05:02:30 +02:00
scripts Base gui, player, side, top nav, song list 2024-11-14 00:56:02 +02:00
xmpd-cache Added, but disabled icon dl impl. Player improvements 2024-11-21 22:52:57 +02:00
xmpd-cliargs Downloading prototype works 2024-11-19 14:35:33 +02:00
xmpd-core Actually usable????????// 2024-11-21 05:02:30 +02:00
xmpd-gui Added, but disabled icon dl impl. Player improvements 2024-11-21 22:52:57 +02:00
xmpd-manifest Added, but disabled icon dl impl. Player improvements 2024-11-21 22:52:57 +02:00
xmpd-player Actually usable????????// 2024-11-21 05:02:30 +02:00
xmpd-settings Actually usable????????// 2024-11-21 05:02:30 +02:00
xmpd-tooling Downloading prototype works 2024-11-19 14:35:33 +02:00
.gitignore Downloading prototype works 2024-11-19 14:35:33 +02:00
Cargo.lock Added, but disabled icon dl impl. Player improvements 2024-11-21 22:52:57 +02:00
Cargo.toml Added, but disabled icon dl impl. Player improvements 2024-11-21 22:52:57 +02:00
DEV.md Things idk 2024-11-20 20:00:24 +02:00
manifest.json Added, but disabled icon dl impl. Player improvements 2024-11-21 22:52:57 +02:00
manifest.toml Actually usable????????// 2024-11-21 05:02:30 +02:00
README.md initial 2024-10-22 21:54:32 +03:00
rust-toolchain.toml initial 2024-10-22 21:54:32 +03:00

(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