Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
MickyGX/curatorr: Automated playlist generator with smarts

MickyGX/curatorr: Automated playlist generator with smarts

7 hours ago

Curatorr - Music that moves with you

Latest release Discord License AGPL-3.0 Docker Hub

Support me on Ko-fi Buy Me a Coffee


Curatorr is a self-hosted Plex, Jellyfin, and Emby companion for playback tracking, smart playlist generation, artist discovery, and optional Lidarr automation.

Preview

!Curatorr dashboard overview

What It Does

  • Tracks playback from Plex, Jellyfin, or Emby
  • Adds Music Assistant plays through provider matching and per-listener mapping
  • Builds per-user smart playlists from real listening behavior
  • Supports personal playlists, blended playlists, Curatorr rotating playlists, and configurable Daily Mix
  • Adds feature-driven playlist building with BPM, key, Camelot, energy, and danceability filters when analysis data is available
  • Surfaces library-based suggestions and external discovery
  • Integrates with Lidarr for optional add, queue, and progression workflows
  • Supports Last.fm history/station features and ListenBrainz playlist suggestions on supported server paths
  • Includes listening reports, reusable playlist templates, artwork controls, and M3U/M3U8 import with scheduled refresh
  • Backs up every Curatorr playlist (smart rules, imported and static track lists, system playlist settings) to a file that can rebuild them on a new media server, keeps backup-only copies of Plex playlists, and exports M3U

Media Server Support

  • Plex: broadest feature set, including Plex SSO, Plex Home users, native Plex webhooks, optional Tautulli support, Daily Mix, Last.fm station playlists, and ListenBrainz playlist suggestions
  • Jellyfin: native server login, library indexing, live playback tracking, smart playlists, personal playlists, blended playlists, discovery, and Lidarr automation
  • Emby: native server login, library indexing, live playback tracking, smart playlists, personal playlists, blended playlists, discovery, and Lidarr automation
Current Plex-only features:
  • Tautulli integration
  • Daily Mix sync
  • Last.fm station playlists
  • ListenBrainz playlist suggestion sync
  • Sonic ordering and loudness-aware sequencing

Quick Start

Minimal Docker Compose example:

services:
  curatorr:
    image: mickygx/curatorr:latest
    container_name: curatorr
    ports:
      - "7676:7676"
    environment:
      - CONFIG_PATH=/app/config/config.json
      - DATA_DIR=/app/data
      - BASE_URL=http://localhost:7676
      - TRUST_PROXY=true
      - TRUST_PROXY_HOPS=1
      - SESSION_SECRET=replace-this-with-a-random-secret
      - WEBHOOK_SECRET=replace-this-with-a-random-secret
    volumes:
      - ./config:/app/config
      - ./data:/app/data
      - ./data/icons/custom:/app/public/icons/custom
    network_mode: bridge
    restart: unless-stopped

Generate SESSION_SECRET and WEBHOOK_SECRET with:

openssl rand -hex 32

Start Curatorr with:

docker compose up -d

Then open http://localhost:7676/wizard and complete the setup wizard for Plex, Jellyfin, or Emby.

Optional Features

Music Assistant 2.7+ can track plays alongside your primary media server and supply the Overview Now Playing fallback. Configure it in Settings after initial setup. See Music Assistant.

Curatorr supports an optional analyzer sidecar for BPM, musical key, Camelot key, energy, and danceability enrichment. For setup and workflow details, see Track Analysis.

Spotify support is optional and user-specific. Users can connect Spotify accounts to browse and import playlists after app-level credentials are configured on the Curatorr container. Owned Spotify playlists imported through the connected-account flow are the most reliable option, especially for larger playlists. Shared or public Spotify playlist URLs imported through the URL tab depend on whatever Spotify exposes on its public web pages, so some playlists may only preview or import part of the track list. If a shared/public playlist is incomplete, copy its tracks into a new playlist you own in Spotify and import that owned copy from the Spotify tab instead. For setup details, see Spotify in Integrations.

TIDAL support is optional and user-specific. Users can connect TIDAL accounts to browse and import their own playlists after TIDAL_CLIENT_ID and TIDAL_CLIENT_SECRET are configured on the Curatorr container. Public TIDAL playlist links can also be imported from the URL tab without connecting an account. For setup details, see TIDAL in Integrations.

YouTube playlist URL import is optional and server-level. Public YouTube playlists can be previewed and imported when YOUTUBE_API_KEY is configured on the Curatorr container. For setup details, see Integrations.

Documentation

For installation, setup, configuration, and troubleshooting:

Support

Chat with me