- Similar to what the Spotify plugin does, on imports we save to a field
`..._album_id` (spotify_album_id, deezer_album_id, beatport_album_id)
- It would be good to submit such a change to the 3rd-party plugins beetcamp
and beatport4 as well (beatport_album_id, bandcamp_album_id).
- We might need to investigate why none of these
flex attr fields get populated to the beets album level (`beet info -a`,
album_attributes db table), it is only available at the item level (`beet
info`, item_attributes db table). This should be tackled in a future
issue/PR.
- Bandcamp, Spotify, Deezer and Beatport ID's are saved in the library as
flexible attributes.
- On _reimports_ the method importer.ImportTask.reimport_metadata() takes care
of preserving existing values for flexible attributes instead of applying new
(and potentially empty) values.
- In this case we don't want this behaviour and need to make sure that new
values are applied. Therefore we check whether such ID's of metadata services
are present in the reimported items and exclude them in reimport_metadata().
- By default no external URLs will be looked for in the 'url-relation-list' of
the releae dictionary.
- Enabling is possible per each external service.
- Enable fetching 'url-rels' from the MusicBrainz release endpoint.
- A MusicBrainz release might contain a link to a Discogs release
which we save to the discogs_albumid attribute of the info object.
- For extraction of the release ID from the Discogs URL, we use the method
provided in the id_extractors util module.
- Often discogs release links used to be written as discogs.com/release/<id>
- Extend one of the existing regex patterns to support that by making the
trailing dash (-) optional.
- Save a new test regex on regex101.com and update the link to it.
from MetadataSourcePlugin and save beatport_id_regex in id_extractors module.
This streamlines the Beatport release ID extraction magic with plugins Deezer
and Spotify.