-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discogs plugin replacing Feat. or Ft. with a comma #4401
Comments
How I would diagnose this: I know plugins are stored in beetsplug: https://github.com/beetbox/beets/tree/master/beetsplug I see discogs.py ( I can also search for 'discogs' if i dont know the name of the plugin) https://github.com/beetbox/beets/blob/master/beetsplug/discogs.py I search "feat" - no results My next step would be to see how the discogs plugin is getting info from discogs. possibly with an "API" call. for musicbrainz (For example) you can look at what the program is seeing- ex. https://musicbrainz.org/doc/MusicBrainz_API/Examples edit: Looks like it uses discogs_client, an outside library. That's as far as I'm taking this but others are welcome to continue the research. Line 286 in 472c3ab
You could also try increasing the logging level of python/beets/discogs client to the level "debug". I don't know offhand how to do that. |
This Discogs API, at least in the way we're using it, seems to return a list of artist names (e.g., Lines 568 to 570 in 472c3ab
It's possible Discogs also reports the single-string version of multi-artist music. If so, then we should probably use that! But it would require verifying that this information is actually available somewhere via the API… |
Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward? This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
If we look at the plain api response of aforementioned release: https://api.discogs.com/releases/21846394,
In python3-discogs-client we could access the "join" information like this already and make use of it in beets:
We also see that there is a separate object in the response that has it joined together already:
I openend a pull request to implement this into python3-discogs-client: joalla/discogs_client#117,
|
@sampsyo do you agree that the best option would be to use the new p3dc attribute artists_sort and let the beets user configure whether artist names should simply be joined using The alternative would be to use the "join" info from the artist data already as described above. I would open a beets PR once we decide what's the best way to proceed. Thanks for your input in advance! |
Aha, good question! I like the idea of using the |
Ah good thinking, thanks! I double checked and yes indeed "Beatles, The" is what's containend in |
Fun fact @sampsyo, the original PR implementing a first version of Discogs source plugin, already respected the join field in the Discogs API result: At some point the get_artist method was moved out into a staticmethod in the MetadataSourcePlugin abstract class, which doesn't have this functionality anymore - it always returns a comma separated string of artists. I suppose that applies to other MetadataSourcePlugins as well, eg. I tested with the Spotify plugin: When selecting a release found on there, it faces the same "problem": Artists are combinend into a string like eg. "Artist1, Artist2". BTW FYI @arsaboo I'm wondering if this functionality should be added to this "core" method again or if it is very Discogs specific and should be worked around in the Discogs plugin itself? An optional argument perhaps called 'join_key` could be added: Lines 658 to 691 in 472c3ab
Update: This is where respecting |
The alternative, in case we'd like to keep
But still I think, since stuff was moved out of plugins and generalized and things where forgotten, implementing into the "core" logic seems to be a good idea. |
Example import with last "workaround" solution:
You see this was previously tagged with the old behaviour - artists simply connected with ", " - and now is a single string. |
Note: Musicbrainz supplies join keys iirc. Could be a useful crossreference on a search. |
By any chance @RollingStar you a maintainer and want to review my PR? |
Sorry, not this time. I end up playing in people's sandboxes but I don't know how all the beets code works. |
@kennyboy1978 by any chance is it possible for you to test the new feature in the PR you find linked above. It might help getting this fix merged. I can help with installing beets from that branch, in case that's desired. Hope that helps! |
Sorry for not replying sooner. I stumbled my way through installation and this works as expected. Artists with "Feat, Ft, Vs and & " are all picked up now. Thank you very much! |
I try and use the Discogs plugin for my collection as I think it is more accurate than MusicBrainz. I've recently noticed that if Feat., Ft. or Vs. appears in the artist name on Discogs, it is replaced by a comma in between artists.
https://www.discogs.com/release/21846394-Vinylgroover-Feat-MC-Freestyle-Bassface
The output I want is:
But instead it's written as:
Similarly:
https://www.discogs.com/release/22025074-Neophyte-Ft-Alee-Original-Gangster
Neophyte Ft. Alee - Original Gangster
Is written as:
Neophyte, Alee - Original Gangster
https://www.discogs.com/release/1694463-Scott-Brown-Vs-DJ-Rab-S-Now-Is-The-Time
Scott Brown Vs DJ Rab S - Now Is The Time
Scott Brown, DJ Rab S - Now Is The Time
Using Musicbrainz however, writes the format that I prefer. This would point to the way the plugin pulls the information, rather than something in my config file?
The text was updated successfully, but these errors were encountered: