yoink

SoulSeek

Configure SoulSeek as a P2P download source via slskd.

SoulSeek is a download-only provider. It works through slskd, a web-based SoulSeek client that exposes a REST API.

SoulSeek doesn't use provider-specific IDs. It searches by artist name, album title, and track title. This means it can download music discovered through any metadata provider, not just tracks linked to a specific service.

Prerequisites

  • A running slskd instance
  • A SoulSeek account (create one in slskd's settings or at slsknet.org)

Setup with Docker Compose

Add slskd to your compose file

compose.yaml
services:
  slskd:
    image: slskd/slskd
    container_name: slskd
    restart: unless-stopped
    ports:
      - "5030:5030"
    environment:
      SLSKD_REMOTE_CONFIGURATION: true
      SLSKD_SLSK_USERNAME: your_slsk_username
      SLSKD_SLSK_PASSWORD: your_slsk_password
    volumes:
      - slskd-data:/app
      - ./music:/music

Mount slskd's downloads into the yoink container

yoink needs to read completed downloads from slskd's download directory:

compose.yaml (yoink service)
volumes:
  - yoink-data:/data
  - ./music:/music
  - slskd-data:/slskd-downloads:ro

Enable SoulSeek in yoink

compose.yaml (yoink service)
environment:
  SOULSEEK_ENABLED: true
  SLSKD_BASE_URL: http://slskd:5030
  SLSKD_DOWNLOADS_DIR: /slskd-downloads
  # If slskd has web auth enabled:
  # SLSKD_USERNAME: your_web_username
  # SLSKD_PASSWORD: your_web_password

How It Works

  1. yoink sends a search query to slskd's REST API (artist + album + track name)
  2. slskd searches the SoulSeek network for matching files
  3. yoink scores the candidates and picks the best match
  4. slskd downloads the file from the SoulSeek peer
  5. yoink reads the completed file, tags it with metadata, and moves it to MUSIC_ROOT

SoulSeek downloads depend on peer availability. Downloads may be slow or fail if no online peer is sharing the file you need.

Environment Variables

VariableDescriptionDefault
SOULSEEK_ENABLEDEnable or disable SoulSeekfalse
SLSKD_BASE_URLslskd REST API endpointhttp://127.0.0.1:5030
SLSKD_USERNAMEslskd web auth username
SLSKD_PASSWORDslskd web auth password
SLSKD_DOWNLOADS_DIRPath where slskd stores completed downloadsslskd-data/downloads

On this page