Sign inSign up

iuliandita/digarr

By iuliandita

•Updated 5 days ago

AI-powered music discovery for Lidarr, Spotify, Navidrome, Jellyfin, Plex. Self-hosted, open source.

Image
Machine learning & AI
1

10K+

iuliandita/digarr repository overview

Digarr

⁠digarr

CI License: MIT Bun TypeScript Docker Tests Release

*AI-powered music discovery for your arr stack. Connect your listening sources (ListenBrainz, Last.fm, Spotify, Plex, Jellyfin, Discogs), pick an AI provider, and Digarr builds a taste profile, discovers new artists through a 7-stage pipeline, and scores them with a weighted formula that learns from your feedback. Approve what you like -- artists go straight to Lidarr, Spotify playlists, or your media server. Describe a mood in plain English and get instant results. Set up subscriptions that discover new music on a schedule while you sleep. Generate weekly digest playlists automatically. Browse your library by genre with deep-cut discovery. All self-hosted, all yours.

Beta software -- working toward v1.0. Usable and actively developed, but expect rough edges. Things move fast during the beta -- there may be several releases per day with bug fixes, new features, and improvements. Check the releases page⁠ frequently and read the release notes before updating. We'd love your help: set it up, break things, report issues⁠, and share your feature ideas.

Free and open source, forever. No tracking, no telemetry, no data collection -- your music taste stays on your server.

Dashboard

More screenshots⁠


Note

**Built with AI.** Digarr is built with the help of agentic AI coding tools. A human drives the roadmap, designs the architecture, makes every feature decision, and reviews the output -- but the code and tests are largely AI-generated. All output is reviewed for security issues and generic AI slop before it ships. This is stated upfront because transparency matters. If that's a dealbreaker for you, no hard feelings.

⁠What Makes Digarr Different

⁠7-Stage AI Pipeline

Not just "here are similar artists." Digarr collects your taste from up to 6 sources, asks an AI to reason about what you'd like and why, scores candidates with a configurable weighted formula, deduplicates across batches, and learns from your approve/reject feedback over time.

⁠Mood Discovery

Type "something like Boards of Canada but darker" or "upbeat 90s pop for a road trip" and get instant AI-powered results. No menus, no filters -- just plain English.

⁠Auto-Playlists

Generate curated playlists from your approved recommendations and push them to Navidrome, Jellyfin, Plex, or export as M3U/XSPF. Four strategies: Weekly Digest, Genre Focus, Mood Mix, and Rediscover.

⁠Your AI, Your Choice

Anthropic, OpenAI, Google Gemini, Ollama (local, free), or any OpenAI-compatible endpoint. Every recommendation includes a written explanation of why the artist matches your taste.

⁠Lidarr Optional

Works without Lidarr in pure discovery mode. When connected, approved artists get added with your preferred quality/metadata profiles. Also supports Spotify playlist, Navidrome, Jellyfin, and Plex as approval targets.

Search for artists across Spotify, Deezer, MusicBrainz, TIDAL, and Bandcamp simultaneously. Results are deduplicated and merged. One-click Quick Discover on any result.


⁠Features

  • 6 data sources -- ListenBrainz, Last.fm, Spotify (OAuth), Plex, Jellyfin, Discogs
  • Smart scoring -- weighted composite: consensus, similarity, genre overlap, AI confidence, feedback learning, popularity
  • Auto-approve -- automatically add high-scoring recs to your targets
  • Subscriptions -- scheduled discovery from Spotify playlists/charts, Last.fm tags/charts, ListenBrainz feeds, genre searches, similar-artist seeds
  • Genre deep dive -- browse by genre with Recommended, Trending, and Deep Cuts tabs
  • Library health -- 6 automated checks with one-click batch fixes
  • Analytics -- approval rates, genre trends, source effectiveness, score distribution, time-to-act
  • Top tracks -- Deezer 30-sec previews on recommendation cards with MusicBrainz fallback
  • Decade filtering -- filter recommendations by era (60s through 20s+) with toggle pills
  • Music previews -- Spotify embeds, Deezer clips, YouTube on recommendation cards
  • OIDC/SSO + multi-user -- per-user queues, sources, scoring weights, and target configs
  • Swipe-to-approve on mobile, card-stack mode on desktop
  • Webhook notifications -- Discord, Slack, ntfy, Gotify, or any HTTP endpoint
  • 15 color themes -- editor classics + streaming-service-inspired *arr themes, dark and light
  • Export -- JSON, CSV, M3U, XSPF
  • Self-hosted -- single container, runs alongside your existing *arr stack

⁠Quick Start

mkdir digarr && cd digarr
curl -LO https://raw.githubusercontent.com/iuliandita/digarr/main/deploy/docker/docker-compose.yml
curl -LO https://raw.githubusercontent.com/iuliandita/digarr/main/deploy/docker/.env.example
cp .env.example .env
# Edit .env -- set DB_PASS at minimum
docker compose up -d

Open http://localhost:3000 and complete the setup wizard. Alternatively, fill in the service env vars in .env and setup completes automatically on first boot. Database migrations run automatically on every startup.

For local development, see CONTRIBUTING.md⁠.


⁠How It Works

Digarr runs a 7-stage recommendation pipeline:

  1. Collect -- fetches your Lidarr library (or skips in discovery mode)
  2. Analyze -- builds a taste profile from all connected sources
  3. Discover -- queries Last.fm similar, Discogs genres, AI recommendations, and library seeds
  4. Resolve -- validates against MusicBrainz, fetches metadata/images, genre-aware disambiguation
  5. Score -- weighted composite formula with configurable weights
  6. Filter -- removes library duplicates, rejected artists (with cooldown), low scores
  7. Store -- persists batch and recommendations

Runs on a cron schedule, manually, or via subscriptions for targeted discovery.


⁠Requirements

ServiceRequiredPurpose
LidarrOptionalMusic library management + auto-download
Listening sourceAt least oneListenBrainz, Last.fm, Spotify, Plex, Jellyfin, or Discogs
AI ProviderYesAnthropic, OpenAI, Gemini, Ollama, or any compatible endpoint
PostgreSQLYesData storage (included in Docker Compose)

⁠Configuration

All configuration is done through the web UI after initial setup -- connections, scoring weights, cron schedule, and preferences are all set there. See .env.example⁠ for the full list of environment variable fallbacks (useful for zero-touch Docker deployments).


⁠Deployment

MethodPathNotes
Docker Composedeploy/docker/⁠Recommended. Includes PostgreSQL. Also on Docker Hub⁠.
Helm chartdeploy/helm/digarr/⁠Kubernetes. Bundled PostgreSQL or bring your own.
Raw k8s manifestsdeploy/k8s/⁠Reference manifests for advanced setups.
Unraiddeploy/unraid/⁠Community Applications template. Requires external PostgreSQL.
Synology NASdocs/guides/synology.md⁠DSM 7.1+ (Docker/Container Manager). SSH or GUI.
Docker Desktopdocs/guides/docker-desktop.md⁠macOS and Windows (WSL 2).

⁠Friends

Other self-hosted music discovery projects worth checking out -- each takes a different approach:

ProjectApproach
Lidify⁠The OG. Lidarr library + Last.fm similar artists. Simple, focused.
Aurral⁠Last.fm tag similarity + Weekly Flow playlists via Soulseek/Navidrome.
MixArr⁠56 subscription types across 12 services. Widest net in the space.
Curatorr⁠Behavior-first. Scores artists on skips/play completion, not tags.
Brainarr⁠Native Lidarr plugin. Privacy-first with local AI.
Sonobarr⁠Last.fm discovery with optional AI assistant. Real-time UI.
Explo⁠Discover Weekly for self-hosted. ListenBrainz recs to your media server.
MusicMoveArr Datasets⁠MB/Spotify/Deezer/Tidal datasets -- used by Digarr for genre enrichment.

⁠Contributing

See CONTRIBUTING.md⁠.


⁠License

MIT -- see LICENSE⁠.


⁠Star History

Star History Chart ⁠

Tag summary

Content type

Image

Digest

sha256:66066cc96…

Size

61.9 MB

Last updated

5 days ago

docker pull iuliandita/digarr