Replies: 3 comments 4 replies
-
|
I finally installed an instance of Airsonic-advanced to try to get closer to the original behavior. Here's what I observe:
There you go, I hope this can help others. |
Beta Was this translation helpful? Give feedback.
-
|
I think this is a general issue with the API definition, inherited no doubt from Subsonic, which made assumptions about filesystem layouts and how they relate to artists, albums, and so on. The issue for users of the API is that the expected behaviors are ill-defined enough that servers implement these differently -- and inconsistently. For example:
Fundamentally, the API does not clearly distinguish between file structure and metadata structure, although there's a clear implicit assumption that the music directory follows a strict layout of ARTIST/ALBUM/SONG. I think here gonic's approach is more sane, because (a) it doesn't make assumptions about filesystem layouts, and (b) it handles edge cases which are not always irrational. However, gonic's approach is also non-conformant to the API because the behavior deviates: An example filesystem layout which I've used elsewhere is: assume a music directory layout: Assume the songs are correctly tagged. Who's the artist for "Sabbath Bloody Sabbath"? If you look at the metadata, it's Black Sabbath; if you look at the filesystem, it's Amy Grant. A contrived example, but let's assume some kid that is obfuscating their directory structure assuming their parents aren't going to drill down too far, and they've named all of their files weird -- but "acceptable" things. The second example is absolutely valid. Increasingly, artists are releasing songs that are not on albums, so the assumption of ARTIST/ALBUM/SONG is wrong. The third is also contrtived, but I'll bet it's also super common: people download individual songs; are they going to create nested directory structures to put single songs into? Not usually. I'm fairly organized, but my music directory is (literally) decades old and I have over 300 songs still hanging out at the top level, because they're one-hit-wonders and I didn't bother to buy the whole album. The fourth entry is totally contrived, and backwards. Only the truly insane would lay out their filesystem like this, but the point I'm driving at is that I fundamentally disagree with making assumptions about metadata ("who's the artist") being derived from filesystem layout. I'd like to see some consensus and agreement to clarify some of these behaviors in the API, to more strongly separate "filesystem view" from "metadata view", and to add additional API calls to cover the gaps. Put another way, I'd like to be able to write a client that can either browse the filesystem -- not making assumptions about what the directory structure implies about metadata -- or browse the music library using only metadata from the audio files. This is currently not possible with the current API definition for reasons stated above. One final point: I'd love if we could rely on metadata, but the fact is that audio files are often poorly or incompletely tagged, and clients have to deal with that. If, for example, we agree that |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello!
For now, LMS emulates the functionality of getIndexes by listing the artists. In getMusicDirectory, if an artist is requested, we list the albums, and if an album is requested, we list the tracks of the album.
Now, I would like to understand how it is supposed to work in the original API, because for me, everything is not very clear when looking at the legacy Subsonic's examples, which only consider the artist/album/tracks structure.
For example, if I place my music in subfolders like this:
Techno/Compilations/HardBassVol17, what type of node should be indicated for "Techno" in the getIndexes response? And the same question for "Compilations" and "HardBassVol17" in the getMusicDirectory requests?
The same questions apply for an organization like this: Metal/Metallica/Reload. I see in the responses that the node type is "artist," but I don't quite see how the original API distinguishes between an intermediate folder and a folder that contains only the artist's albums?
Bonus question: what about MyArtist/MyAlbum/CDX?
Beta Was this translation helpful? Give feedback.
All reactions