Fix playlist sync tracks always tagged as track number 01

When downloading individual tracks from a playlist sync, the album
detection fallback hardcoded track_number to 1 instead of using the
value already available in the download context from the playlist
metadata. Now checks original_search.track_number and track_info
.track_number before falling back to 1. Full album downloads and
Spotify API lookup paths are completely unchanged.
This commit is contained in:
Broque Thomas 2026-04-08 07:45:11 -07:00
parent 0ad385be9f
commit bd45e89515

View file

@ -15746,11 +15746,16 @@ def _detect_album_info_web(context: dict, artist: dict) -> dict:
print("⚠️ No good Spotify match found, using original data") print("⚠️ No good Spotify match found, using original data")
fallback_title = _clean_track_title_web(original_search.get('title', 'Unknown Track'), artist_name) fallback_title = _clean_track_title_web(original_search.get('title', 'Unknown Track'), artist_name)
# Preserve track_number from context if available (playlist sync tracks have it)
_ctx_track_number = (original_search.get('track_number')
or context.get('track_info', {}).get('track_number')
or 1)
return { return {
'is_album': False, 'is_album': False,
'clean_track_name': fallback_title, 'clean_track_name': fallback_title,
'album_name': fallback_title, 'album_name': fallback_title,
'track_number': 1, 'track_number': _ctx_track_number,
'confidence': 0.0, 'confidence': 0.0,
'source': 'fallback_original' 'source': 'fallback_original'
} }
@ -15758,7 +15763,10 @@ def _detect_album_info_web(context: dict, artist: dict) -> dict:
except Exception as e: except Exception as e:
print(f"❌ Error in _detect_album_info_web: {e}") print(f"❌ Error in _detect_album_info_web: {e}")
clean_title = _clean_track_title_web(context.get("original_search_result", {}).get('title', 'Unknown'), artist.get('name', '')) clean_title = _clean_track_title_web(context.get("original_search_result", {}).get('title', 'Unknown'), artist.get('name', ''))
return {'is_album': False, 'clean_track_name': clean_title, 'album_name': clean_title, 'track_number': 1} _err_tn = (context.get("original_search_result", {}).get('track_number')
or context.get('track_info', {}).get('track_number')
or 1)
return {'is_album': False, 'clean_track_name': clean_title, 'album_name': clean_title, 'track_number': _err_tn}