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:
parent
0ad385be9f
commit
bd45e89515
1 changed files with 12 additions and 4 deletions
|
|
@ -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}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue