Skip to content

Latest commit

 

History

375 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synthseek

License GitHub last commit GitHub stars GitHub Sponsors Codecov

Self-hosted, multi-user music library automation.

Synthseek searches across music providers, downloads through the sources you enable, slskd, Usenet, or yt-dlp, checks that what arrived is what you asked for, and keeps your library organized afterwards. It is multi-user, provider-agnostic, and ships a built-in MCP server so assistants can drive your library.

Website · Documentation · Patch notes

Demos

Discover
discover.mp4
Request content
request.mp4
Browse and import your library
library.mp4
importing.mp4

Why Synthseek

  • No API keys to get started. The catalog is provider-agnostic and runs on Deezer by default, so a first run needs nothing you have to register for.
  • Three download sources, and you decide the order. Peer-to-peer, Usenet, and a YouTube fallback, chosen per request rather than once globally.
  • It treats your library as something to keep honest. Files are checked before they are imported, duplicate copies are only settled when they can be proven identical, and nothing is ever deleted outright.

Quick start

Requires Docker with Compose, and a running slskd if you want peer-to-peer downloads.

Use the provided docker-compose.yml as a starting point:

docker compose up -d

Open the web interface, create your admin account in the setup wizard, and point it at your music folder. The full walkthrough is in Getting Started.

What it does

Find and request

  • Search tracks, albums, artists, and playlists across a provider-agnostic catalog
  • Request a single track, a whole album, or an entire playlist
  • Choose the quality and the source order per request
  • A queue you can reorder, pause, and resume, with live progress

Features

Get the files

  • slskd for peer-to-peer, Usenet through your own indexer and SABnzbd, and yt-dlp as a fallback
  • A Usenet release downloaded for one track is reused for the other tracks on the same album instead of being fetched again
  • Every download is fingerprinted and identified before it is imported, so a file whose tags look right but whose audio is by someone else is refused
  • Anything that fails that check waits in a review queue for you to approve or discard

Download sources · The download engine

Keep your library honest

  • Synthseek keeps its own index of the audio files on your disk, so music you copied in by hand is found and identified rather than staying invisible
  • A file that moved is followed to its new location instead of being counted as one loss and one arrival
  • Tracks with more than one copy are listed a track at a time, and only copies it can prove are the same recording are settled automatically, which means agreeing on both title and length
  • What it cannot prove waits for you, with every copy playable before you choose
  • Nothing is deleted outright: replaced files go to a recycle bin with a restore, for as long as the retention window keeps them

Operations

Listen anywhere

  • Play your library in the web app, with media keys, a lock screen and a full screen view, and nothing to turn on first
  • Your queue and position are kept on the server, so they survive a reload and are the same ones your phone picks up
  • Play your library in Subsonic and OpenSubsonic apps such as Feishin and Symfonium, with no media server in between
  • Apps can change things, not only play them: favourites, playlists you create and reorder, what you played, and a queue you can pick up on another device
  • A stream is converted on the fly when an app asks for a lower quality than the file on disk
  • Send what you play to Last.fm and ListenBrainz from the server, so a listen survives closing the tab
  • Read the lyrics in the full screen view, following the song when the words come with timings
  • Sync playlists to Plex, one at a time or all at once

Features

Automate it

  • A built-in MCP server, so assistants can search, request, and manage your library
  • Discovery mixes from Last.fm and ListenBrainz on a dedicated Discover page
  • Lidarr delegation, with tag and monitor-scope selection
  • Spotify library import, and playlist import and export as JSPF, XSPF, or CSV

AI assistants · Integrations

Run it

  • Multi-user, with local accounts or Plex OAuth, member management, and per-user libraries
  • A responsive web interface that works on a phone as well as a desktop
  • Available in English, Espanol, Deutsch, and Francais
  • Logs viewer, background job controls, and in-app update notifications

Users and permissions · Configuration

Documentation

Overview What Synthseek is and how the pieces fit
Getting Started Install, first run, and pointing it at your music
Features Everything the app does, in detail
Download engine How a request becomes a file in your library
Download sources slskd, Usenet, and the YouTube fallback
Configuration Environment variables and in-app settings
Users and permissions Accounts, roles, and what members can see
Integrations Plex, Lidarr, Last.fm, ListenBrainz, and more
AI assistants The MCP server and its tools
Operations Jobs, logs, health, backups, and updates
FAQ Common questions and troubleshooting

Help

For bugs or questions, open an issue.

Support

Sponsor on GitHub    Support on Ko-fi

License

This project is licensed under the MIT License.

About

Self-hosted music discovery library manager with modern web UI, MCP tools and more...

Topics

Resources

Security policy

Stars

49 stars

Watchers

1 watching

Forks

Sponsor this project

Packages

Used by

Contributors

Languages