[API Request] Support language tags #66
Replies: 1 comment 21 replies
-
So repeating here :) For artists the API currently does not expose song data, if there's no genres there should not be languages either for now. If an extension is made to extend artist data with song data then it can be added but this is another discussion. Albums should be as genre so a distinct array of the song values. Songs tags support multiple language tags, most taggers support that, servers should not remove data because 1 website decided to. We expose the tags not MB data. If some servers wants to expose MB data they can but it must not prevent the API to return the tags. For the format, as you said Vorbis and others do not enforce values, so enforcing something in the API brings the questions about what to do with the values that does not fit? Dropping them would be incredibly bad. Server trying to find the proper ISO code for the language, incredibly error prone. Clients can easily still convert the ISO codes when it's 3 letters and fallback to the value if it can't. Just the fact that ID3 says ISO 639-2 yet you propose ISO 639-3 confirm that this would not be realistic to enforce anything. For the record I do support those fields and have already seen quite a few variations of the values that would be lost here. |
Beta Was this translation helpful? Give feedback.
-
Proposal description
New discussion by request @Tolriq :
language
. Working on that now in Navidrome but it makes more sense if it's in OpenSubsonic too.Two considerations:
Single or multi valued?
TLAN/LANGUAGE
tags. But if you look at MusicBrainz Picard (and the Musicbrainz DB), language is stored single valued: a song can have only one language value, if there's multiple languages in the song it getsmul
(= ISO code for multiple languages). Up to us to decide - islanguage
a single or a multivalued property?eng
and 1 song inspa
as a single valuemul
? That really limits clients ability to search for "albums in English". OS doing{eng, spa}
is better IMO.Formatting
(edit: if we make Languages objects like Genre, then it can be up to the user, server or client to enforce ISO 639-2 validity, the API is neutral)
Backward compatibility impact
No response
Backward compatibility
API details
one new endpoint
getLanguages
[OS]:http://your-server/rest/getLanguages.view?u=demo&p=demo&v=1.13.0&c=AwesomeClientName&f=json
getSongs
->http://your-server/rest/getSongs.view?language=eng&u=demo&p=demo&v=1.13.0&c=AwesomeClientName&f=json
getAlbumList2
?:http://your-server/rest/getAlbumList2.view?language=eng&type=random&u=demo&p=demo&v=1.13.0&c=AwesomeClientName&f=json
getArtists
?:http://your-server/rest/getArtists.view?language=eng&u=demo&p=demo&v=1.13.0&c=AwesomeClientName&f=json
response:
language
languages
-> array oflanguage
objectsSecurity impacts
No response
Potential issues
No response
Alternative solutions
No response
Beta Was this translation helpful? Give feedback.
All reactions