Musidex
Your musical pokedex, Plex for music.
Add songs from youtube videos or youtube playlist to your library, or import them from your local files.
Tags are automatically imported and searchable, sync it on your phone to enjoy free offline music, managed from your home server.
Don't want to bother making playlists?
Let Musidex handle it for you, a neural network analyses your musics and checks for similarity to provide semantic autoplaying.
Choose a starting point and let it choose the next song for you!
Features
- Music streaming
- Youtube import
- Web front
- Neural embedding based auto play
- Text search
- Tag filtering
- Playlists through tags/Tag editor
- MP3 import
- Ogg import
- FLAC import
- Android App
- iOS App
Setting up the server
Linux
Only GNU/Linux distros are supported at the moment. Since the project is young, you'll have to build it yourself. We will provide prebuilt binaries eventually.
Dependencies
You can run the prepare.sh
script after cloning to run all of the following commands, or run them yourself with an explanation.
Youtube-dl to add music from youtube URLs.
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
Ffmpeg so that the downloaded audio files are converted to more friendly formats. (as advised by youtube-dl).
Npm for the frontend.
Sqlite for the db.
sudo apt install ffmpeg npm libsqlite3-dev python3 python-is-python3
The rust compiler for the backend.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME"/.cargo/env
The repo itself.
git clone https://github.com/Uriopass/Musidex
cd Musidex
# Prepare the web dependencies
(cd musidex-web && npm install)
Building and running
# Just run the start script
./start.sh
Developing on the project
First install the dependencies as listed above, then
# Start the daemon, will listen on localhost:3200
cargo run --manifest-path=musidex-daemon/Cargo.toml
# And in another terminal... start the web client
cd musidex-web
npm start # will start on localhost:3000
# and proxy api requests to the daemon
Then if you want to work on the daemon, simply run cargo run
again after doing your modifications.
If you want to work on the web client, the modifications will be hot reloaded.
All musidex data ends up in the storage
directory.