ftintitle does not work with compilations
because we search album artist name in track artist name in the strings manipulations, so it fails when album artist is Various artists (compilations)
Indeed; the plugin works by looking for the "primary artist" by assuming it's the same as the album artist. Not necessarily true in compilations.
What would be the best way to handle this case (my preference: 4 )?
- if we check that what precede "feat" is the album artist we then ignore compilations (current implementation)
- Always moving the (supposed) feat artist has the risk to move a string that is not an artist. Only case I can think of is a song title containing the string "feat" (or a derivative).
- we could have an option "cautious" (default: true). When set to false it would not do the artist contain album artist check
- we could have an option "enable_for_va_compilations" (default: false). When set to true, if
albumartist == Various artistsit would skip the artist contain album artist check. We could mention in the docs that enabling it is somewhat risky.
Good question. It would certainly be nice to find a way to make this "just work" in common cases, if at all possible…
@sampsyo said :
Maybe we can just enable compilation-specific logic when a VA album is detected? That could be triggered by: (a) "Various Artists", obvs; (b) the comp flag; or (c) whenever the album artist is not found in the track artist.
@verrus said :
Here i will post some musicbrainz anomalies regarding featuring and album artist:
https://musicbrainz.org/recording/c215db7e-9f59-4168-a89c-5b4de052bbcd Contains both ft. + 'and'
https://musicbrainz.org/recording/ff935ab0-1915-4491-85c7-e43af268dfbd Two tracks in one... The first one features the album artist, the second is by the album artist.
https://musicbrainz.org/recording/9a16694a-4ef5-4759-bc2c-cf2d5124d132 This one is also lovely the album artist is featuring with another artist.
https://musicbrainz.org/recording/180298db-82f9-4abe-b7f1-8f961b70eb77 Lets make it more complex, an album artist with an & and two featuring artists combined using an &. i also saw some occurrences with the album artist under an alias on his/hers own album.
I hope i have provide you with some tricky cases to test!
Thanks @verrus for these examples it's just what we need for the tests.
Good question. It would certainly be nice to find a way to make this "just work" in common cases, if at all possible…
Here is my suggestion :
- reducing list of feat keywords from featuring, feat, ft, with, &, vs, and to featuring, feat, ft reduces a lot of complexity (no more ambiguities when, say, feat and & keywords are present) and allow us to extract feat artist without using album artist info.
- we lost the ability to extract ft artist from an artist tag such as "Beyoncé & Jay-z" (with album artist = "Beyoncé") but we can now extract ft artists from compilations that is a more frequent case.
Wa yuh think? :poodle:
I think the best option is to use a VA detection method either with a flag or option 4 with "enable_for_va_compilations" .
Searching for a featuring artist, using all keywords and extending this with checking presence of the album artist is the best option i came across when developing the first version of this plugin.
We should leave the crazy cases in a log file, and people can do manual editing on tracks which the plugin did not catch.
Would this simple policy work?
- If the album artist is found in the track artist, use the current logic. Try everything, including stuff like "&" as a separator.
- If that doesn't work, and we would otherwise need to give up, try the various-artists logic. That would just use the basic separators such as "featuring" and "feat."
Any obvious problems with such a simple approach?
Good for me.
I would like to illustrate my preferred method (fictional band names) AA: Crappy & co. TA: Crappy & co. feat. the receivers
Match TA with AA: True. Search further with the featuring artist indicating characters or words. Split(TA on AA): [ "Crappy & co." , "feat. the receivers" ] Apply matching on the last part and extract the desired featuring artist(s).
When a track does not pass this, the VA method proposed by @sampsyo should be executed.
Hi all,
Just thought I'd list another musicbrainz anomaly I came across that defeats the current ftintitle release: https://musicbrainz.org/release/6f65ef0d-3aa3-4f14-962e-52d8ae584e2e The album artist appears after the feat. on this album.
Title of this issue should be changed, this seems to be whenever album artist and artist are not the same. Also, for music that's on musicbrainz, how about having the plugin work directly with the track info provided rather than performing string manipulation?
Could be use a inline variable/plugin to detect "feat./ft/feat/featuring" and only grab what's before? It would work-ish in the mean time for albumartist
I have no idea if it's possible though or how to implement it
Could be use a inline variable/plugin to detect "feat./ft/feat/featuring" and only grab what's before? It would work-ish in the mean time for
albumartistI have no idea if it's possible though or how to implement it
I once tried to improve the lastimport plugin to be able to parse the track title while excluding features, but found it very difficult. It may even be impossible honestly to get it 100% reliable. There are many edge cases where you have to account for paranthesis, brackets, capitalization, ft/feat/ft./feat./featuring/with/etc., sometimes even hyphens, etc.
I think such a function should be used as a fallback for music that is not known to musicbrainz.
This should have been resolved with the merge of https://github.com/beetbox/beets/pull/5943 which for some reason didn't make the change notes (probably my error).
Thanks for the note on this Trey - you're right! Closing.