feat: spotify playlist injection

- Add SpotifyImportSettings configuration model
- Create SpotifyMissingTracksFetcher background service
- Inject virtual Spotify playlists into search results
- Auto-match tracks from external providers
- Update README with feature documentation
- Configure sync window and playlist settings
This commit is contained in:
2026-01-31 16:43:49 -05:00
parent 35d5249843
commit 8912758b5e
9 changed files with 501 additions and 1 deletions

View File

@@ -95,3 +95,36 @@ STORAGE_MODE=Permanent
# Based on last access time (updated each time the file is streamed)
# Cache location: /tmp/allstarr-cache (or $TMPDIR/allstarr-cache if TMPDIR is set)
CACHE_DURATION_HOURS=1
# ===== SPOTIFY PLAYLIST INJECTION (JELLYFIN ONLY) =====
# REQUIRES: Jellyfin Spotify Import Plugin (https://github.com/Viperinius/jellyfin-plugin-spotify-import)
# This feature injects virtual Spotify playlists (Release Radar, Discover Weekly) into Jellyfin
# with tracks auto-matched from external providers (SquidWTF, Deezer, Qobuz)
# Enable Spotify playlist injection (optional, default: false)
SPOTIFY_IMPORT_ENABLED=false
# Jellyfin server URL (required if SPOTIFY_IMPORT_ENABLED=true)
# Should match your JELLYFIN_URL unless using a different URL for plugin access
SPOTIFY_IMPORT_JELLYFIN_URL=http://localhost:8096
# Jellyfin API key (REQUIRED if SPOTIFY_IMPORT_ENABLED=true)
# Get from Jellyfin Dashboard > API Keys > Create new key
# This is used to fetch missing tracks files from the Spotify Import plugin
SPOTIFY_IMPORT_API_KEY=
# Sync schedule: When does the Spotify Import plugin run?
# Set these to match your plugin's sync schedule in Jellyfin
# Example: If plugin runs daily at 4:15 PM, set HOUR=16 and MINUTE=15
SPOTIFY_IMPORT_SYNC_START_HOUR=16
SPOTIFY_IMPORT_SYNC_START_MINUTE=15
# Sync window: How long to search for missing tracks files (in hours)
# The fetcher will check every 5 minutes within this window
# Example: If plugin runs at 4:15 PM and window is 2 hours, checks from 4:00 PM to 6:00 PM
SPOTIFY_IMPORT_SYNC_WINDOW_HOURS=2
# Playlists to inject (comma-separated, optional)
# Available: Release Radar, Discover Weekly
# Leave empty to disable all, or specify which ones to enable
SPOTIFY_IMPORT_PLAYLISTS=Release Radar,Discover Weekly