SoulSync is a bot to automate downloading music from the SoulSeek network. It leverages Spotify API and Slskd API to manage downloads.
The development has been done with SpringBoot for the backend and VueJS for the frontend.
Please note that SoulSync is currently under development. If you have any questions or want to collaborate, feel free to link me at contact me or through this repository.
-
SLDKD: You need to have an instance of SLSKD running (Slskd Quick Start) on your machine, Raspberry Pi, or VPS.
-
Spotify account (free or premium): Needed to create an API KEY/SECRET API.
-
Docker: You must have docker installed (https://docs.docker.com/engine/install/) as well as Docker Compose (https://docs.docker.com/compose/install/).
If you have understood these requirements, you may continue :).
-
Clone the repository
git clone https://github.com/xaviqo/SoulSyncBot.git
-
Navigate to DOCKER directory
cd SoulSyncBot/DOCKER
-
Build the docker images* (we will use --no-cache to make sure we build them from scratch)
* It may take several minutes to start, as it has to download all the dependencies, compile and start the services.
docker-compose build --no-cache
-
Start the services
docker-compose up
The default credentials are: admin/admin. You can change them in the same panel once you are logged in.
-
Log in to the bot:
http://localhost:7316/ (credentials: admin/admin).
-
Check that you have response from Slskd and Spotify:
-
Log in to the Spotify Developer dashboard. You can log in with your personal Spotify account: https://developer.spotify.com/dashboard
-
Create an APP from the control panel by clicking the Create App button.
-
Add an App Name (e.g. "soulsync"), an App Description (e.g. "description") and a Redirect URI. (e.g. "https://google.com"). *You can put whatever you want, we just need the API keys.
-
Once created, go to the panel of the created app by clicking on it and press the Settings button at the top right.
-
Copy API credentials
-
Paste them into the fields and save
-
Change also the Slskd URL and credentials if necessary (if you don’t run it on your machine or you are not using the default user/password)
-
File format settings - Configure from the application panel the desired file format for your downloads (FLAC/MP3/OGG/AIFF…)
-
Detecting Spotify playlist updates - The bot will detect new additions to your spotify playlists and add them to the download queue
-
Full synchronization with Navidrome or similar - With the functionality to move downloaded files, you can organize your music by playlists or artist/disc with Navidrome or similar applications. To fully automate the process you can use my Bash script that generates playlists automatically.
-
Slskd Repository - My gratitude towards this project is absolute. Not only because I have been using their application for a long time, but also because their API has been fundamental for the development of the bot.
-
SoulSeek Reddit - Subreddit for P2P file-sharing client Soulseek
-
The other truth about PIRACY (Spanish) - Analysis on piracy, by a renowned communicator of the Spanish-speaking musical universe
-
My Personal Portfolio - Contact page and other projects
This is the first time I have made an application of this type. I have learned a lot during the development and there are things that I would now change, as well as ideas that I have not yet fully implemented. Therefore, I plan to make a new version of the application this year, with more features that will surely be liked.
I appreciate any comments, criticism or constructive advice.