Looking for suggestions on how to organize my library (metadata + multiple artists)

Note: Before reading I want point out that I am a developer and am in the process of creating my own client for playing my music. However, that doesn't mean I want to start using a bunch of custom ID3 tags and do a bunch of other things that would only apply to my app, should I ever choose to migrate. I still want to follow common practices and standards as far as metadata tagging as closely as possible.

I've been pushing this off forever now because I just don't know how to do this and get the desired outcome.

The thing causing most of the trouble is songs/albums that have multiple artists. This falls under these categories:

  • Featured artist: Artist1 feat. Artist 2
  • Joint release: Artist1 & Artist2
  • A combination of the above: Artist1 & Artist2 feat. Artist3

I want there to be a distinction between who is a main artist and who is a featured artist.

If you see Apple Music/Spotify/TIDAL, you can see that if an artist is credited as a main artist, the item will show on their artist page. And there also may be a "appears on" section that shows on whose songs/albums they are featured on. So they seem to have a way to distinguish that (namely, see TIDAL's "credits" section on an artist's page).

I want to be able to:

  • View all of artists albums (+ EPs, singles, etc.)
  • View all of artists features without crediting them as main artist, keeping separate from the rest of the main discography.

---

EXAMPLES

  • Travis Scott - HIGHEST IN THE ROOM
    • Shows up on Travis Scott's page. There are no issues/complications with this.
  • Justin Bieber - Holy (feat. Chance the Rapper)
    • Shows up on Justin Bieber's Page. Also shows on Chance the Rapper's page under an "appears on" section or something like it, separate from his main discography, and can be viewed when viewing all songs that have Chance the Rapper on it.
  • Future & Lil Uzi Vert - Over Your Head
    • Shows up on both Future's and Lil Uzi Vert's page. They are both main artists and therefore accessing either page will show up as a "main" release.
  • NAV & Gunna - Turks (feat. Travis Scott)
    • Shows up on both NAV's and Gunna's page. They are both main artists and therefore accessing either page will show up as a "main" release. Also shows on Travis Scott's page under an "appears on" section or something like it, separate from his main discography, and can be viewed when viewing all songs that have Travis Scott on it.

---

Can I use metadata in such a way to make this work? What I'm considering doing is creating multiple tags for the corresponding fields, and using a custom FEATUREDARTIST tag that would distinguish a featured artist from a main artist. So for the examples above:

  • Travis Scott - HIGHEST IN THE ROOM
    • ALBUMARTIST = Travis Scott
    • ARTIST = Travis Scott
  • Justin Bieber - Holy (feat. Chance the Rapper)
    • ALBUMARTIST = Justin Bieber
    • ARTIST = Justin Bieber
    • FEATUREDARTIST = Chance the Rapper
  • Future & Lil Uzi Vert - Over Your Head
    • ALBUMARTIST = Future
    • ALBUMARTIST = Lil Uzi Vert
    • ARTIST = Future
    • ARTIST = Lil Uzi Vert
  • NAV & Gunna - Turks (feat. Travis Scott)
    • ALBUMARTIST = NAV
    • ALBUMARTIST = Gunna
    • ARTIST = NAV
    • ARTIST = Gunna
    • FEATUREDARTIST = Travis Scott

You may notice that the album artist and artist are the same for these examples, however there can be cases where you have something like:

  • Juice WRLD & The Weeknd - Smile (from the album Legends Never Die by Juice WRLD)
    • ALBUMARTIST = Juice WRLD
    • ARTIST = Juice WRLD
    • ARTIST = The Weeknd
  • Lil Yachty & DaBaby - Oprah's Bank Account (feat. Drake) (from the album Lil Boat 3 by Lil Yachty)
    • ALBUMARTIST = Lil Yachty
    • ARTIST = Lil Yachty
    • ARTIST = DaBaby
    • FEATUREDARTIST = Drake
  • Future - Rockstar Chainz (from the album Pluto x Baby Pluto by Future & Lil Uzi Vert)
    • ALBUMARTIST = Future
    • ALBUMARTIST = Lil Uzi Vert
    • ARTIST = Future

Like I said I don't want to deviate too far from what is considered the standard, and that using a custom tag would only work with my app since I would support it. Worst case scenario I figure is that I just have a bunch of extra FEATUREDARTIST metadata tags that I could just remove en masse.

Looking for any help on how I could make something like this work via metadata, or as an absolute last resort via custom development!!

Tags for MP3 files allow multi-value fields like e.g. several of the type ARITST.
Ther is no standard field for FEATUREDARTIST. This would become a user-defined one.

If you look for compatibility:
only very few players support multi-value fields.
only very few players support user-defined fields.