Spotilist is a desktop app that keeps playlists in sync across Spotify, YouTube and your local filesystem. Define a mapping from a source playlist to a target playlist, and Spotilist adds the tracks it finds on one side to the other.
Artist - Title filename convention.Clone the repository and run the app with the Gradle wrapper:
./gradlew run
On Windows, use gradlew.bat run instead.
On first launch, open File → Settings to enter your Spotify and/or YouTube credentials, then use Open Authorization to authorize Spotify access. Back on the dashboard, add a playlist mapping, pick a source and target provider and playlist ID, and enable it.
Configuration is stored at:
~/.config/Spotilist/config.json%AppData%\Spotilist\config.jsonProvider caches live in ~/.cache/Spotilist.
To build a standalone runtime image with jlink:
./gradlew jlink
The resulting image, including a spotilist launcher, is written to build/image. An installable package can be built instead with ./gradlew jpackage.
Run the test suite with:
./gradlew test
The project is a Kotlin/JavaFX application built with Gradle, using Koin for dependency injection and kotlinx.serialization for its config format. Providers implement ISpotilistProvider (see src/main/kotlin/de/dargmuesli/spotilist/providers/); adding a new provider means implementing that interface and registering it in ProviderModule.kt.
Spotilist is licensed under the GNU General Public License v3.0.