sonobarr  by Dodelidoo-Labs

Music discovery assistant for Lidarr users

Created 3 months ago
275 stars

Top 94.1% on SourcePulse

GitHubView on GitHub
Project Summary

Music discovery for Lidarr power users, blending Last.fm insights, ListenBrainz playlists, and a modern web UI. Sonobarr marries your existing Lidarr library with Last.fm’s discovery graph to surface artists you'll actually like. It runs as a Flask + Socket.IO application, ships with a polished Bootstrap UI, and includes admin tooling so folks can share a single instance safely.

How It Works

Sonobarr operates as a Flask + Socket.IO backend application with a Bootstrap-based web client, persisting data in SQLite. It fetches artist data from Lidarr via its HTTP API, fans out requests to Last.fm for similarity insights, and streams recommendations back to the browser in real-time. Sonobarr also supports seeding discovery from ListenBrainz playlists and incorporates an AI assistant that uses OpenAI-compatible models to generate artist suggestions based on user prompts.

Quick Start & Requirements

  • Requirements: Docker Engine ≥ 24, Docker Compose plugin, Last.fm API key, Lidarr API key.
  • Setup: Create a working directory, ensure it's owned by UID/GID 1000:1000, download docker-compose.yml and .env sample files, populate .env with necessary API keys and Lidarr address, then execute docker compose up -d.
  • Access: Navigate to http://localhost:5000 in your browser.
  • Updates: Run docker compose pull followed by docker compose up -d.

Highlighted Details

  • Deep Lidarr integration: syncs monitored artists, applies per-source monitor strategies, toggles album policies, and sends new additions directly back to Lidarr.
  • Personal discovery hub: streams artist batches sourced from the Lidarr library, Last.fm scrobbles, and ListenBrainz Weekly Exploration playlists.
  • AI assistant: enables seeding new discovery sessions with artists based on descriptive prompts using any OpenAI-compatible model.
  • Artist requests workflow: allows non-admins to submit requests, with admins approving/rejecting via a real-time audited interface.
  • Real-time UX: Socket.IO synchronizes discovery progress, toast alerts, and button states across all connected clients.
  • Features role-based access control, hardened security configurations, and a Docker-first deployment strategy.

Maintenance & Community

Sonobarr is actively maintained by Dodelidoo Labs. Contributions are encouraged, with detailed guidelines available in CONTRIBUTING.md. The project welcomes pytest coverage contributions, as current testing relies primarily on manual efforts.

Licensing & Compatibility

This project is released under the MIT License, which permits broad usage, including commercial applications and integration with closed-source software.

Limitations & Caveats

Public API documentation is still under development. Automated testing is limited; contributions to enhance pytest coverage are actively sought. The AI assistant functionality requires valid credentials for an OpenAI-compatible API provider. Initial setup necessitates careful configuration of environment variables and file permissions.

Health Check
Last Commit

2 months ago

Responsiveness

Inactive

Pull Requests (30d)
1
Issues (30d)
1
Star History
53 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.