Open mgoltzsche opened 7 months ago
For all the reasons you indicated, I exclusively use Spotify tag source. Still, I miss out on all the Musicbrainz-related features (e.g., missing
), or I cannot obtain Deezer's popularity information. The problem you are referring to is not really a Spotify problem but a broader beets problem (given that it is built around using a single tag source).
I have thought hard about it, and I think a good intermediate solution would be to have some metaimport
plugin that would query all the tag sources that a user has configured and allow users to fetch IDs from all sources. We can use the respective plugin features once the IDs are available inside beets. For example, in your case, if you initially imported music using MB, you already have MB information in beets. The plugin will only query the sources configured but not present in the database and then obtain matches. I actually started working on such a metaimport plugin but could not get it going. As the number of tag sources increases, it is one of the "must-have" features in my mind, and I would love to get that feature.
Oh, that's a pity!
Alternatively, can we not simply add an additional spotify_id
field and make the beet spotify
command establish the association based on that new ID field, accepting that the Spotify association won't be established on import automatically?
We can only choose one of the tag sources at the time of import. However, you can always reimport with another tag source.
Let's say we use MB on the initial import. This will populate both the mb_albumid
and mb_trackid
fields. You can then reimport with Spotify, which will add the spotify_album_id
and spotify_track_id
fields. Now, at this point, you will have identifiers from both sources, and the data_source
will be updated to Spotify
, and the tags will be from Spotify. Hope that clarifies.
Currently the Spotify track ID is persisted within the Beets DB only for songs that have been matched against Spotify on import. Others don't have a Spotify ID. However, it should be possible to associate each song within the Beets library with a Spotify track and persist that information within the Beets DB, ideally including the audio features.
Background / use-cases that rely on this feature:
Proposed solution
There should be a Beets CLI command to associate each song within the Beets library with a Spotify track by storing the Spotify track ID within a Beets database field, e.g.
spotify_id
. It could as well be implemented within the existingbeet spotify
command that the Beets Spotify plugin implements. Also, allow incremental matching of Spotify songs so that Spotify is queried only for Beets songs that are not yet associated with Spotify.Correspondingly, the Spotify track should be associated with each song on import, also in case the song was matched against Musicbrainz. In that case the Spotify audio features should also be copied into the Beets DB.
Objective
Associate as many songs within the Beets library as possible with Spotify and persist that information.
Goals
Associate as many songs within the Beets library as possible with Spotify and persist that information.
Non-goals
More prompts, less automation.
Anti-goals
Don't sacrifice/destroy Musicbrainz track associations.