Closed Radoom closed 1 month ago
This is intended behaviour. The metadata stored in the album artist field is needed to maintain references to YouTube artists and videos using their IDs (since the regular metadata fields are only populated with readable text).
I'm not sure why I didn't use a different field for storing this information, I think there was something that prevented other fields from working on all platforms or something but I don't remember. At this point I don't really want to change the field anyway since that would break compatibility.
Songs downloaded in SpMp aren't really meant to be used outside SpMp anyway, so if you want to do that you'll need to manually strip the metadata or use a custom solution that does it for you unfortunately.
Thanks for your response and explanation.
While I understand that your focus is on using the dl'd files inside SpMp only, could you please reconsider.
The tag fields are sort of standardized and I'd say that they, especially those more "common" ones like "album artist", shouldn't be used for other data storage than what they are intended for by their very name.
Looking at the fields "kid3" offers me to add to tracks:
So, using "Comment" for the "song_ID:" part, and the two aforementioned for what their names say would allow storage of the three values you have in "AlbumArtists" now. Or, place the whole string in "Comment", but leave "Album Artist" empty (unless a song is on an album where "album artist" indeed as a meaningful (text only) artist name entry).
Background: Using SpMp for my kid, who has limited online time (but unlimited music listening time ;-) ), so d'l'ing songs and then massively using them offline is the killer feature we've found SpMp the best in class for. However, browsing the offline content inside SpMp itself is somewhat limited (or I'm too stupid). Sorting by Artists, Albums etc doesn't exist, search can only deal with song names afaik. So, when she want's all her XYZ artists songs now, she's not gonna search each and every single one by name and add them to SpMp's queue or a playlist, that's just not realistic. Hence, we use players that do care for all the fields and allow filtering "as usual". Plus, in those players, music from other sources, are available, too. Having the SpMp download folder as part of the overall library is great.... but doesn't work properly due to this field "abuse".
Maybe you can do something about it...would be great.
On Android, SpMp is limited to the metadata fields made available by MediaMetadataRetriever.
I made a test build (use the debug one, it will install as a separate app) that uses the location field instead of album artist, is that an improvement for you?
Yes! That does the trick, perfect!
Tested with both players mentioned above, both don't distinguish by the location field obviously (as it wouldn't make sense, e.g. as on a live best-off album recordings from various places could be included). Thank you so much!
Checklist
Steps to reproduce
Expected behavior
Songs downloaded with spmp do contain the album name in the album tag field correctly. So they should show as one album for all songs of that album.
Actual behavior
as per above: each song represents its own album.
Screenshots / recordings
No response
Logs
none availalbe
SpMp version
0.4.1
SpMp platform
Android
OS version
Android 10 and 12 on two different devices
Additional information
The problem lies with the "Album Artist" tag field, which is written by spmp with a (JSON-like?) string like this:
{"song_id":"jW-TZX95pjU","artist_ids":["UCkY2oqGEbBSaCdP-PVGhpCw"],"album_id":"MPREb_nNQCFjwd5CT"}
Because the "song_id" value is different for each song, this "Album Artist" total value/string gives a unique string (even though "artist_ids" and "album_id" have the same value).
IF I manually clean out the "Album Artist" tag filed (e.g. using kid3), then afterwards the external players see all songs as being from one and the same album according to the "Album" tag field.
Solution seems to prevent spmp from writing above "IDs" into the "Album Artist" tag filed.