47 lines
2.6 KiB
Markdown
47 lines
2.6 KiB
Markdown
|
# (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](https://www.egui.rs/) for a crossplatform frontend that makes it possible to run almost anywhere.
|
||
|
The music is downloaded via [ytdlp](#Dependencies) and [spotdl](#Dependencies), and converted to your favorite format via [ffmpeg](#Dependencies)
|
||
|
|
||
|
## 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](#dependencies)). Just press `download all` and see as all of your playlists appear in your hard drive, powered by Open Source software.
|
||
|
|
||
|
## Dependencies
|
||
|
[ffmpeg](https://ffmpeg.org/): To convert your music files to your desired format.
|
||
|
[spotdl](https://github.com/spotDL/spotify-downloader): To download music from spotify, because ofcourse spotify had to be the special child
|
||
|
[ytdlp](https://github.com/yt-dlp/yt-dlp): To download music from every single other source
|
||
|
|
||
|
The rust dependencies can be found in the [Cargo.toml](/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](/DEV.md)
|
||
|
|
||
|
## Licensing
|
||
|
See [LICENSE.md](/LICENSE.md) for the licensing terms
|
||
|
|
||
|
|