Better documentation for file structure/ meta data
I would appreciate better documentation regarding what file structures are supported.
Example jellyfin https://jellyfin.org/docs/general/server/media/music
I am not saying that the file structure should be the same.
It is just a matter of documentation what is supported.
Additionally it should be mentioned which meta data tags get used. There are different tag programs and if it is known which tags get scanned they can be configured for optimal use.
Problems:
How to differentiate between different APIs. OpenSubsonic supports multiple Artists and normal Subsonic doesn't. (At the moment not implemented just an example.)
There are no limitations regarding the possible folder tree structures. Primarily, the library is organized based on the metadata tags. But if some metadata tags are missing, then the file and folders names are used as fallback:
- The file name is used as fallback for the song title (and also track number may be extracted from it)
- The parent folder name is used as fallback for the album name
- The grandparent folder name is used as fallback for the artist name
So essentially, the fallback logic assumes a structure like the Jellyfin example shows for "Some Artist", but there may freely be additional folder levels above the "Some Artist". But if the files are perfectly tagged, then the folder structures don't matter at all and you may have all the files in one folder or each file in its own folder or anything else you could think of.
Multiple artists or multiple genres per song are not supported at time being. Giving a complete list of the supported metadata tags would not be easy as we use a 3rd party library to extract the metadata and it supports countless different file formats and tag types, and hides some of the complexities from us.
Giving a complete list of the supported metadata tags would not be easy as we use a 3rd party library to extract the metadata and it supports countless different file formats and tag types, and hides some of the complexities from us.
I meant which tags get used. The library abstracts the access to the data but you still have to define which key is searched. Example: https://github.com/owncloud/music/blob/c32d01893a4895e569188b48ec7770142b62c256/lib/Utility/Scanner.php#L232-L234 there is 'artist' as key defined for the meta data. I meant something like this:
| tag | type | native | Ampache | Subsonic | OpenSubsonic |
|---|---|---|---|---|---|
| artist | string | yes | yes | yes | yes |
| artists | array | no | no | no | yes |
And the yes/no is not the standard but the implementation in the music app.
The inspiration is from this table:
https://support.symfonium.app/t/supported-features-by-media-providers/1178
I can create this table but as i am busy at the moment it will take time.
@paulijar would you like/want/need help in documenting this?
@ei8fdb I'm not planning to use my time on this, but if someone is willing to make e.g. a Wiki page for this, I'm not against that.