Enrichers Overview
Enrichers enhance your music library metadata from various sources. They run automatically and in a configurable priority order.
Available Enrichers
| Enricher | API Key | Description |
|---|---|---|
| MusicBrainz | Not required | Open music database |
| Spotify | Required (OAuth) | Audio features, artwork |
| Last.fm | Required | Tags, biographies |
| Fanart.tv | Required | High-quality images |
| Lidarr | Required | Music collection manager |
| OpenAI | Required | AI-generated content |
How Enrichment Works
- Scheduling: Enrichment runs periodically based on
SPOTTER_METADATA_INTERVAL - Priority Order: Enrichers process entities in the configured order
- Data Merging: Later enrichers can override data from earlier ones
- AI Enhancement: OpenAI runs last to summarize all collected data
Configuration
# Enable enrichment
SPOTTER_METADATA_ENABLED=true
# Run every hour
SPOTTER_METADATA_INTERVAL=1h
# Processing order (left to right)
SPOTTER_METADATA_ORDER=lidarr,musicbrainz,navidrome,spotify,lastfm,fanart,openai
Enrichment Order Strategy
The default order is designed so that:
- Lidarr provides initial structure and organization
- MusicBrainz adds canonical IDs and basic metadata
- Navidrome adds local server data
- Spotify adds audio features and high-quality images
- Last.fm adds community tags and biographies
- Fanart.tv adds high-quality artwork
- OpenAI generates summaries from all available data
Manual Enrichment
Trigger enrichment manually from Preferences > Tasks:
- Run Metadata Enricher: Process all entities
- Sync All Artist Images: Refresh artist images
- Sync All Album Art: Refresh album artwork
Enriched Entity Types
Artists
- Names and aliases
- Biographies
- Genres and tags
- Profile images
- Background images
- Logos
- External IDs
Albums
- Titles
- Release dates
- Genres and tags
- Cover artwork (multiple sizes)
- Track listings
Tracks
- Titles
- Durations
- Audio features (BPM, key, energy)
- Genres and tags
- ISRC codes
Rate Limiting
Each enricher respects API rate limits:
| Enricher | Rate Limit |
|---|---|
| MusicBrainz | 1 req/second |
| Spotify | Dynamic |
| Last.fm | Generous |
| Fanart.tv | Tier-based |
| OpenAI | Token-based |
Spotter automatically handles rate limiting with exponential backoff.