feat: two-stage Lidarr discovery + Emby→arr sync tools
Lidarr Discovery (playback_aware_lidarr_discovery.sh): - Complete rewrite to two-stage pipeline: Stage 1 scores weekly Emby plays → top seeds; Stage 2 runs Last.fm getSimilar on seeds → scores candidates → adds top 0-5 to Lidarr - Per-user influence cap (35%) prevents single listener dominating discovery - Requires 2+ seeds to accept a candidate (single-seed skipped) - Last.fm similarity limit 10 for tighter, higher-quality candidates - 30-day reject cooldown history; MAX_ADDS=5 cap enforced - Root folder fetched from Lidarr API at runtime (no config path) - Added to WEEKLY_MAINTENANCE_SCRIPTS (uncommented) Emby→arr sync tools (Tools/): - emby_to_lidarr_sync.sh: finds Emby music artists not in Lidarr, adds them - Dirty tag filter: comma-list, feat./ft., &, vs, " - " patterns skipped - Root folder fetched from Lidarr API at runtime - emby_to_sonarr_sync.sh: finds Emby series not in Sonarr, adds them - TVDB ID matching with title fallback - emby_to_radarr_sync.sh: finds Emby movies not in Radarr, adds them - TMDB ID matching with title fallback - All three: searchForMissing*: false (monitoring only, no searches triggered) - All three documented in Tools/Manual-Tools.md
This commit is contained in:
+10
-1
@@ -380,7 +380,7 @@
|
||||
"Docker_Essentials/docker_weekly_restart.sh" # weekly container restarts after sync
|
||||
"Docker_Essentials/docker_update_remaining.sh" # pull updates for all other containers
|
||||
"unRAID_Essentials/clear_logs.sh" # purge aged logs — Sunday only, low priority
|
||||
#"Media/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history — WIP
|
||||
"Media/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history
|
||||
)
|
||||
|
||||
# Pull updates for all running containers NOT in daily/weekly restart lists.
|
||||
@@ -940,6 +940,15 @@
|
||||
LIDARR_ART_SLEEP_BETWEEN=0.2 # seconds between fanart.tv API calls
|
||||
# HOST*_FANART_API_KEY / HOST*_LASTFM_API_KEY — set in master_host*.conf
|
||||
|
||||
# Lidarr discovery settings (playback_aware_lidarr_discovery.sh)
|
||||
LIDARR_DISCOVERY_THRESHOLD=70 # score to accept candidate (0-100)
|
||||
LIDARR_DISCOVERY_LOOKBACK_DAYS=7 # Emby play history window in days
|
||||
LIDARR_DISCOVERY_MIN_PLAYS=3 # min plays in window before evaluating an artist
|
||||
LIDARR_DISCOVERY_USER_CAP_PCT=35 # max % any single user can contribute to play score (prevents one listener dominating)
|
||||
LIDARR_DISCOVERY_MAX_ADDS=5 # max artists to add per run — quality over bulk
|
||||
LIDARR_DISCOVERY_REJECT_COOLDOWN=30 # days before re-evaluating a rejected artist
|
||||
LIDARR_DISCOVERY_HISTORY="$DATA_DIR/lidarr_discovery_history.db"
|
||||
|
||||
# Sonarr shared settings
|
||||
SONARR_ORPHAN_AGE=7 # days — files must be older than this before eligible for deletion
|
||||
SONARR_MAX_DELETE_GB=10 # require --i-know-what-im-doing if deletion exceeds this
|
||||
|
||||
Reference in New Issue
Block a user