What Synthseek is
Synthseek is a self-hosted, multi-user music library automation service. You run it on your own hardware, it is the only thing that talks to your download client, and every file it produces lands in a library you own.
You ask for music the way you would ask a person: a song, an album, an artist, a playlist, or a vague idea like “melancholic 80s synthwave”. Synthseek finds it in a music catalog, downloads it through your own peer-to-peer client, checks that what arrived is genuinely what you asked for, tags it, files it into your library, and tells your media server about it.
It is built for a household rather than a single person. Several people can have their own accounts, their own playlists, and their own connected services, without seeing each other’s settings or being able to change how the instance runs.
What it is not
Synthseek does not host, store, or distribute music itself. It has no content of its own. It orchestrates software you already run and services you already have accounts with. Where the files come from is entirely a function of the download client you point it at and the sources you enable.
The shape of the system
Synthseek ships as a single Docker container that runs two processes: a web interface and an API server. Around it sit the services it talks to.
| Piece | Role | Required |
|---|---|---|
| slskd | Your Soulseek daemon. Synthseek drives it over its local HTTP API. | Yes, for peer-to-peer downloads |
| Music catalog | Where song, album, artist, and playlist metadata comes from. Deezer by default, with no API key and no account. | Yes, built in |
| Beets | Tags and files each downloaded track into your library. | Bundled, on by default |
| AcoustID | Fingerprints the audio to prove a file is the recording you asked for. | Optional, free key, strongly recommended |
| Plex | Gets told to rescan after an import, and receives your playlists. | Optional |
| Lidarr | An alternative target you can hand an artist or album to. | Optional |
| Last.fm and ListenBrainz | Your listening history, and the discovery mixes built from it. | Optional |
How a request flows
- You search, and pick a track, album, artist, or playlist.
- Synthseek writes one request row per track and puts them in the queue.
- The engine searches your enabled download sources for each track.
- Candidates are scored, and the best one is downloaded.
- The downloaded file is verified against what you asked for.
- A verified file is tagged and imported into your library.
- Your media server is told to rescan, and any playlist involved is rebuilt there.
Every step reports back live. The requests screen updates without a refresh, and a progress dock follows anything long-running.