Skip to content

An automated bot for downloading Spotify playlists on the Soulseek network using the Slskd API

Notifications You must be signed in to change notification settings

xaviqo/SoulSyncBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Description

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.

Requirements

If you have understood these requirements, you may continue :).

Installation with Docker

  • 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

Minimum configuration required to operate

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:

api status
Figure 1. The 4 buttons should be green as shown in the image
  • 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

spotify dev
  • Paste them into the fields and save

api cred
  • 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)

Features

  • 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.

navidrome
Figure 2. Playlists from my personal Spotify on Navidrome. Obtained with the bot
  • 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

Final notes

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.

Captures

main
Figure 3. SoulSync home page
songtable
Figure 4. Table with playlist tracking information

About

An automated bot for downloading Spotify playlists on the Soulseek network using the Slskd API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published