Samik081 / beets-beatport4

Beatport API v4 compatible beets plugin
MIT License
25 stars 2 forks source link

Candidates don't have tracknumbers #1

Closed JOJ0 closed 1 year ago

JOJ0 commented 1 year ago

Hi, thanks for maintaining a solution while the official beatport plugin is gone! I just came across some older Techno tracks that I'd like to import and they are nowhere to be found on Discogs or MusicBrainz. Just Beatport ;-) So: Thanks a ton!

I realised that tracknumbers are always missing in the candidates. I didn't investigate what to the problem could be, just reporting for now:

(Similarity: 42.5%) (missing tracks, media, source, tracks) (Beatport, Digital, 2009, Plus 8 Records, PLUS8100B)
 * Theychx (Tobias. Fuse Remix) (#12) (10:53) -> Intro (From Our Minds To Yours) (Tiefschwarz Remix) (#None) (10:40) (title, source, length)
Missing tracks (9/10 - 90.0%):
 ! 5 (Alex Under Remix)             (#None) (6:57)
 ! Ethnik (Paco Osuna Remix)        (#None) (9:45)
 ! Goo (Paco Osuna Remix)           (#None) (8:28)
 ! Hardphunk (Mike Shannon Reshake) (#None) (8:27)
 ! Kriket (Danilo Vigorito Remix)   (#None) (5:58)
 ! Statikphunk (Ambivalent Remix)   (#None) (6:04)
 ! Substance Abuse (Barem Remix)    (#None) (8:17)
 ! Vortex (Function Remix)          (#None) (7:18)
 ! Vortex (Hobo's Vile Remix)       (#None) (5:49)
[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort, plaY, eDit, edit Candidates? 

Hope that helps and thanks again!

JOJ0 commented 1 year ago

Also I just realise right now that not all tracks containend on this release are listed as the missing tracks. That's a different issue I guess: https://beatport.com/release/the-remixes/2292897

Samik081 commented 1 year ago

Thank you, @JOJ0, for the kind words and reporting those issues with the examples! I'll have a look this week :)

Samik081 commented 1 year ago

Hey @JOJ0, I can't reproduce this issue :/. Could you please share me:

Thanks in advance!

JOJ0 commented 1 year ago

Hi, thanks for taking a look and sorry for the late delay!

Ok, so now what I've tried so far:

It's happening still.

Also I found out that it happens with single files as well. This is an example import command.

$ beet import -t /remote/data/music-archive/0-andi/Februar\ 2011/Alexander\ Ross\ -\ 01\ -\ Room.mp3

/remote/data/music-archive/0-andi/Februar 2011/Alexander Ross - 01 - Room.mp3 (1 items)
Correcting tags from:
    Alexander Ross - Universal Consciousness 1.1
To:
    Argy, Alexander Ross - Universal Consciousness 1.1
URL:
    https://beatport.com/release/universal-consciousness-11/217494
(Similarity: 78.1%) (media, missing tracks, artist, source, tracks) (Beatport, Digital, 2010, These Days, TD05)
 * Room (#1) -> Room (#None) (source)
Missing tracks (1/2 - 50.0%):
 ! Sometimes I'm Blind (#None) (6:31)
[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? 

I include the beatport plugin config from an extra yaml file, if that matters:

beatport4:
    source_weight: 0.2
    username: <secret>
    password: <secret>
    tokenfile: beatport_token.json
    client_id:

The thing is: It happens with each and every candidate I try to display/use from beatport. No matter which mp3/flac file I'll try to import.

Well, I didn't try if it makes any difference if it is a flac file and not mp3. Worth a try. Might reveal a direction on how to debug further.

JOJ0 commented 1 year ago

Some more config parts that might be of interest:

match:
    ignored_media:
    - Data CD
    - DVD
    - DVD-Video
    - Blu-ray
    - HD-DVD
    - VCD
    - SVCD
    - UMD
    - VHS
    strong_rec_thresh: 0.15
    medium_rec_thresh: 0.65
    max_rec:
        missing_tracks: strong
        unmatched_tracks: medium
    distance_weights:
        track_title: 1.5
        album: 4.0
        catalognum: 2.0
        track_id: 2.5
    preferred:
        media:
        - Vinyl
        - 12"
        - 2x12"
        - LP
        - CD
        - Digital Media|File
        - Cassette
        countries: [GB, DE, FR]
        original_year: no
import:
    log: remotebeets-import.log
    copy: yes
    move: no
    write: yes
    resume: ask
    from_scratch: yes
    default_action: apply
    detail: yes
    non_rec_action: ask
    duplicate_action: merge
    incremental_skip_later: no
    incremental: yes
    group_albums: no
    bell: yes
    autotag: yes
    autotag_exclude_fields: []
    duplicate_keys:
        album: albumartist album catalognum
        item: artist title catalognum
    set_fields:
        genre_orig_dir: Andi2011
JOJ0 commented 1 year ago

I also tested if it is only a "displaying" problem or if it really affects the imported track numbers being applied to the media files. Turns out, it does affect the result:

The source file:

$ mutagen-inspect /remote/data/music-archive/0-andi/Februar\ 2011/Alexander\ Ross\ -\ 01\ -\ Room.mp3 | grep TRCK
TRCK=1/2

The imported file:

$ beet info room alexander ross |grep -i track
       mb_trackid: 1079663
            track: 0
       tracktotal: 2
$ mutagen-inspect "/remote/data/music-library/Andi2011/Argy, Alexander Ross - 2010 - \$incomplete Universal Consciousness 1.1/\$disc_and_track - Alexander Ross - Universal Consciousness 1.1 - Room (2010).mp3" | grep TRCK
TRCK=0/2

We also see that some of the path formatting and inline plugin things that rely on the track number are not working, but that's not surprising I'd say :-)

JOJ0 commented 1 year ago

Hi, did some debug printing today. Where in this API response should the track number be found? I can't find it or it is too early in the morning ;-)

$ beet import -I -t /remote/data/music-archive/0-andi/Februar\ 2011/Alexander\ Ross\ -\ 01\ -\ Room.mp3
In Beatport4Client.get_release_tracks, this is response:
[   {   'artists': [   {   'id': 8642,
                           'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/ba586072-e78a-4eac-a393-567101c46f7f.jpg',
                                        'id': 31657857,
                                        'uri': 'https://geo-media.beatport.com/image_size/590x404/ba586072-e78a-4eac-a393-567101c46f7f.jpg'},
                           'name': 'Argy',
                           'slug': 'argy',
                           'url': 'https://api.beatport.com/v4/catalog/artists/8642/'}],
        'available_worldwide': True,
        'bpm': 120,
        'catalog_number': 'TD05',
        'current_status': {   'id': 10,
                              'name': 'General Content',
                              'url': 'https://api.beatport.com/v4/auxiliary/current-status/10/'},
        'encoded_date': '2010-01-21T05:35:39-07:00',
        'exclusive': False,
        'free_download_end_date': None,
        'free_download_start_date': None,
        'free_downloads': [],
        'genre': {   'id': 6,
                     'name': 'Techno (Peak Time / Driving)',
                     'slug': 'techno-peak-time-driving',
                     'url': 'https://api.beatport.com/v4/catalog/genres/6/'},
        'id': 1079662,
        'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/83529a43-1875-41df-b05d-3f8455b19d30.png',
                     'id': 1445824,
                     'uri': 'https://geo-media.beatport.com/image_size/1500x250/83529a43-1875-41df-b05d-3f8455b19d30.png'},
        'is_available_for_streaming': True,
        'is_hype': False,
        'isrc': 'DECY50923051',
        'key': {   'camelot_letter': 'A',
                   'camelot_number': 5,
                   'chord_type': {   'id': 1,
                                     'name': 'Minor',
                                     'url': 'https://api.beatport.com/v4/catalog/chord-types/1/'},
                   'id': 5,
                   'is_flat': False,
                   'is_sharp': False,
                   'letter': 'C',
                   'name': 'C Minor',
                   'url': 'https://api.beatport.com/v4/catalog/keys/5/'},
        'label_track_identifier': '',
        'length': '6:31',
        'length_ms': 391500,
        'mix_name': 'Original Mix',
        'name': "Sometimes I'm Blind",
        'new_release_date': '2010-02-03',
        'pre_order': False,
        'pre_order_date': None,
        'price': {   'code': 'EUR',
                     'display': '€1.29',
                     'symbol': '€',
                     'value': 1.29},
        'publish_date': '2010-02-03',
        'publish_status': 'published',
        'release': {   'id': 217494,
                       'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg',
                                    'id': 578334,
                                    'uri': 'https://geo-media.beatport.com/image_size/500x500/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg'},
                       'label': {   'id': 12526,
                                    'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/371f84a5-f950-4065-ae7f-de6baf197d82.jpg',
                                                 'id': 353166,
                                                 'uri': 'https://geo-media.beatport.com/image_size/60x60/371f84a5-f950-4065-ae7f-de6baf197d82.jpg'},
                                    'name': 'These Days',
                                    'slug': 'these-days'},
                       'name': 'Universal Consciousness 1.1',
                       'slug': 'universal-consciousness-11'},
        'remixers': [],
        'sale_type': {   'id': 1,
                         'name': 'purchase',
                         'url': 'https://api.beatport.com/v4/auxiliary/sale-types/1/'},
        'sample_end_ms': 276600,
        'sample_start_ms': 156600,
        'sample_url': 'https://geo-samples.beatport.com/track/d457d9b9-70f9-4226-8870-4b15102bdccc.LOFI.mp3',
        'slug': 'sometimes-im-blind',
        'sub_genre': None,
        'url': 'https://api.beatport.com/v4/catalog/tracks/1079662/'},
    {   'artists': [   {   'id': 108690,
                           'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/0dc61986-bccf-49d4-8fad-6b147ea8f327.jpg',
                                        'id': 5539565,
                                        'uri': 'https://geo-media.beatport.com/image_size/590x404/0dc61986-bccf-49d4-8fad-6b147ea8f327.jpg'},
                           'name': 'Alexander Ross',
                           'slug': 'alexander-ross',
                           'url': 'https://api.beatport.com/v4/catalog/artists/108690/'}],
        'available_worldwide': True,
...
...
...
JOJ0 commented 1 year ago

Another debug output, this time at the very end you'll see that a key named 'number' is not found in the data that BeatportTrack receives for initializing the object:

$ beet import -I -t /remote/data/music-archive/0-andi/Februar\ 2011/Alexander\ Ross\ -\ 01\ -\ Room.mp3
In Beatport4Client.get_release, this is response:
{   'artists': [   {   'id': 8642,
                       'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/ba586072-e78a-4eac-a393-567101c46f7f.jpg',
                                    'id': 31657857,
                                    'uri': 'https://geo-media.beatport.com/image_size/590x404/ba586072-e78a-4eac-a393-567101c46f7f.jpg'},
                       'name': 'Argy',
                       'slug': 'argy',
                       'url': 'https://api.beatport.com/v4/catalog/artists/8642/'},
                   {   'id': 108690,
                       'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/0dc61986-bccf-49d4-8fad-6b147ea8f327.jpg',
                                    'id': 5539565,
                                    'uri': 'https://geo-media.beatport.com/image_size/590x404/0dc61986-bccf-49d4-8fad-6b147ea8f327.jpg'},
                       'name': 'Alexander Ross',
                       'slug': 'alexander-ross',
                       'url': 'https://api.beatport.com/v4/catalog/artists/108690/'}],
    'bpm_range': {'max': 125, 'min': 120},
    'catalog_number': 'TD05',
    'desc': '',
    'enabled': True,
    'encoded_date': '2010-01-21T05:35:39-07:00',
    'exclusive': False,
    'grid': None,
    'id': 217494,
    'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg',
                 'id': 578334,
                 'uri': 'https://geo-media.beatport.com/image_size/500x500/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg'},
    'is_available_for_streaming': True,
    'is_hype': False,
    'label': {   'id': 12526,
                 'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/371f84a5-f950-4065-ae7f-de6baf197d82.jpg',
                              'id': 353166,
                              'uri': 'https://geo-media.beatport.com/image_size/60x60/371f84a5-f950-4065-ae7f-de6baf197d82.jpg'},
                 'name': 'These Days',
                 'slug': 'these-days'},
    'name': 'Universal Consciousness 1.1',
    'new_release_date': '2010-02-03',
    'override_price': None,
    'pre_order': False,
    'pre_order_date': None,
    'price': {'code': 'EUR', 'display': '€2.58', 'symbol': '€', 'value': 2.58},
    'price_override_firm': False,
    'publish_date': '2010-02-03',
    'remixers': [],
    'slug': 'universal-consciousness-11',
    'track_count': 2,
    'tracks': [   'https://api.beatport.com/v4/catalog/tracks/1079663/',
                  'https://api.beatport.com/v4/catalog/tracks/1079662/'],
    'type': {'id': 1, 'name': 'Release'},
    'upc': '827170091184',
    'updated': '2015-04-12T20:51:43-06:00'}
In Beatport4Client.get_release_tracks, this is response:
[   {   'artists': [   {   'id': 8642,
                           'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/ba586072-e78a-4eac-a393-567101c46f7f.jpg',
                                        'id': 31657857,
                                        'uri': 'https://geo-media.beatport.com/image_size/590x404/ba586072-e78a-4eac-a393-567101c46f7f.jpg'},
                           'name': 'Argy',
                           'slug': 'argy',
                           'url': 'https://api.beatport.com/v4/catalog/artists/8642/'}],
        'available_worldwide': True,
        'bpm': 120,
        'catalog_number': 'TD05',
        'current_status': {   'id': 10,
                              'name': 'General Content',
                              'url': 'https://api.beatport.com/v4/auxiliary/current-status/10/'},
        'encoded_date': '2010-01-21T05:35:39-07:00',
        'exclusive': False,
        'free_download_end_date': None,
        'free_download_start_date': None,
        'free_downloads': [],
        'genre': {   'id': 6,
                     'name': 'Techno (Peak Time / Driving)',
                     'slug': 'techno-peak-time-driving',
                     'url': 'https://api.beatport.com/v4/catalog/genres/6/'},
        'id': 1079662,
        'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/83529a43-1875-41df-b05d-3f8455b19d30.png',
                     'id': 1445824,
                     'uri': 'https://geo-media.beatport.com/image_size/1500x250/83529a43-1875-41df-b05d-3f8455b19d30.png'},
        'is_available_for_streaming': True,
        'is_hype': False,
        'isrc': 'DECY50923051',
        'key': {   'camelot_letter': 'A',
                   'camelot_number': 5,
                   'chord_type': {   'id': 1,
                                     'name': 'Minor',
                                     'url': 'https://api.beatport.com/v4/catalog/chord-types/1/'},
                   'id': 5,
                   'is_flat': False,
                   'is_sharp': False,
                   'letter': 'C',
                   'name': 'C Minor',
                   'url': 'https://api.beatport.com/v4/catalog/keys/5/'},
        'label_track_identifier': '',
        'length': '6:31',
        'length_ms': 391500,
        'mix_name': 'Original Mix',
        'name': "Sometimes I'm Blind",
        'new_release_date': '2010-02-03',
        'pre_order': False,
        'pre_order_date': None,
        'price': {   'code': 'EUR',
                     'display': '€1.29',
                     'symbol': '€',
                     'value': 1.29},
        'publish_date': '2010-02-03',
        'publish_status': 'published',
        'release': {   'id': 217494,
                       'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg',
                                    'id': 578334,
                                    'uri': 'https://geo-media.beatport.com/image_size/500x500/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg'},
                       'label': {   'id': 12526,
                                    'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/371f84a5-f950-4065-ae7f-de6baf197d82.jpg',
                                                 'id': 353166,
                                                 'uri': 'https://geo-media.beatport.com/image_size/60x60/371f84a5-f950-4065-ae7f-de6baf197d82.jpg'},
                                    'name': 'These Days',
                                    'slug': 'these-days'},
                       'name': 'Universal Consciousness 1.1',
                       'slug': 'universal-consciousness-11'},
        'remixers': [],
        'sale_type': {   'id': 1,
                         'name': 'purchase',
                         'url': 'https://api.beatport.com/v4/auxiliary/sale-types/1/'},
        'sample_end_ms': 276600,
        'sample_start_ms': 156600,
        'sample_url': 'https://geo-samples.beatport.com/track/d457d9b9-70f9-4226-8870-4b15102bdccc.LOFI.mp3',
        'slug': 'sometimes-im-blind',
        'sub_genre': None,
        'url': 'https://api.beatport.com/v4/catalog/tracks/1079662/'},
    {   'artists': [   {   'id': 108690,
                           'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/0dc61986-bccf-49d4-8fad-6b147ea8f327.jpg',
                                        'id': 5539565,
                                        'uri': 'https://geo-media.beatport.com/image_size/590x404/0dc61986-bccf-49d4-8fad-6b147ea8f327.jpg'},
                           'name': 'Alexander Ross',
                           'slug': 'alexander-ross',
                           'url': 'https://api.beatport.com/v4/catalog/artists/108690/'}],
        'available_worldwide': True,
        'bpm': 125,
        'catalog_number': 'TD05',
        'current_status': {   'id': 10,
                              'name': 'General Content',
                              'url': 'https://api.beatport.com/v4/auxiliary/current-status/10/'},
        'encoded_date': '2010-01-21T05:35:39-07:00',
        'exclusive': False,
        'free_download_end_date': None,
        'free_download_start_date': None,
        'free_downloads': [],
        'genre': {   'id': 6,
                     'name': 'Techno (Peak Time / Driving)',
                     'slug': 'techno-peak-time-driving',
                     'url': 'https://api.beatport.com/v4/catalog/genres/6/'},
        'id': 1079663,
        'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/84006767-84df-4873-af0f-4f67a5f594d2.png',
                     'id': 1445645,
                     'uri': 'https://geo-media.beatport.com/image_size/1500x250/84006767-84df-4873-af0f-4f67a5f594d2.png'},
        'is_available_for_streaming': True,
        'is_hype': False,
        'isrc': 'DECY50923052',
        'key': {   'camelot_letter': 'A',
                   'camelot_number': 7,
                   'chord_type': {   'id': 1,
                                     'name': 'Minor',
                                     'url': 'https://api.beatport.com/v4/catalog/chord-types/1/'},
                   'id': 7,
                   'is_flat': False,
                   'is_sharp': False,
                   'letter': 'D',
                   'name': 'D Minor',
                   'url': 'https://api.beatport.com/v4/catalog/keys/7/'},
        'label_track_identifier': '',
        'length': '8:12',
        'length_ms': 492887,
        'mix_name': 'Original Mix',
        'name': 'Room',
        'new_release_date': '2010-02-03',
        'pre_order': False,
        'pre_order_date': None,
        'price': {   'code': 'EUR',
                     'display': '€1.29',
                     'symbol': '€',
                     'value': 1.29},
        'publish_date': '2010-02-03',
        'publish_status': 'published',
        'release': {   'id': 217494,
                       'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg',
                                    'id': 578334,
                                    'uri': 'https://geo-media.beatport.com/image_size/500x500/2230dabd-8bf5-48dc-a206-37fe57a67808.jpg'},
                       'label': {   'id': 12526,
                                    'image': {   'dynamic_uri': 'https://geo-media.beatport.com/image_size/{w}x{h}/371f84a5-f950-4065-ae7f-de6baf197d82.jpg',
                                                 'id': 353166,
                                                 'uri': 'https://geo-media.beatport.com/image_size/60x60/371f84a5-f950-4065-ae7f-de6baf197d82.jpg'},
                                    'name': 'These Days',
                                    'slug': 'these-days'},
                       'name': 'Universal Consciousness 1.1',
                       'slug': 'universal-consciousness-11'},
        'remixers': [],
        'sale_type': {   'id': 1,
                         'name': 'purchase',
                         'url': 'https://api.beatport.com/v4/auxiliary/sale-types/1/'},
        'sample_end_ms': 317154,
        'sample_start_ms': 197154,
        'sample_url': 'https://geo-samples.beatport.com/track/65d7357c-60e4-4894-947e-a7c907fe9d6f.LOFI.mp3',
        'slug': 'room',
        'sub_genre': None,
        'url': 'https://api.beatport.com/v4/catalog/tracks/1079663/'}]
'number' was not found in BeatportTrack.__init__
This is self.number in BeatportTrack.__init__: None
'number' was not found in BeatportTrack.__init__
This is self.number in BeatportTrack.__init__: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
JOJ0 commented 1 year ago

I tried looking up by track ID using the "Try it" button in the beatport api docs: https://api.beatport.com/v4/docs/catalog/tracks/%7Bid%7D/

Random track id: 12345

"number": 1,

A track id as in the debug print stuff above: 1079663

"number": 2,

Interesting! number key is there! But not in the response we actually get from the api.... !?!

JOJ0 commented 1 year ago

Ok, so now some debugging only inside the init methods of BeatportTracks and BeatportRelease classes. It reveals that a newer tracks api endpoint exists that we should probably use instead of "manually" crafting a track endpoint url from data['slug].

Actually aht this point the plugin had already pulled from this newer endpoints (catalog/tracks/... catalog/release/) but this self.url I'm not sure why it's there and when it might be used to actually access the api:

$ beet import -I -t /remote/data/music-archive/0-andi/Februar\ 2011/Alexander\ Ross\ -\ 01\ -\ Room.mp3
This is self.url in BeatportRelease.__init__: https://beatport.com/release/universal-consciousness-11/217494
'url' key is not available from the api response!

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/universal-consciousness-11/217494
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/sometimes-im-blind/1079662
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1079662/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/universal-consciousness-11/217494
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/room/1079663
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1079663/

In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
JOJ0 commented 1 year ago

And here I added a debug print that reveals what the actual url is we use to fetch, right inside the lowlevel _get method:

$ beet import -I -t /remote/data/music-archive/0-andi/Februar\ 2011/Alexander\ Ross\ -\ 01\ -\ Room.mp3
In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/my/account
In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/search
In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/217494/
This is self.url in BeatportRelease.__init__: https://beatport.com/release/universal-consciousness-11/217494
'url' key is not available from the api response!

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/217494/tracks/
'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/universal-consciousness-11/217494
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/sometimes-im-blind/1079662
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1079662/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/universal-consciousness-11/217494
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/room/1079663
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1079663/

In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
This is self.url in BeatportRelease.__init__: https://beatport.com/release/universal-consciousness-11/217494
This would be url key in the api response: https://api.beatport.com/v4/catalog/releases/217494/

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/371304/
This is self.url in BeatportRelease.__init__: https://beatport.com/release/consciousness-ep/371304
'url' key is not available from the api response!

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/371304/tracks/
'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/consciousness-ep/371304
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/orient-express/1914120
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1914120/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/consciousness-ep/371304
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/walking-on-stars/1914121
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1914121/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/consciousness-ep/371304
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/dreams/1914122
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1914122/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/consciousness-ep/371304
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/shadows-drop/1914123
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1914123/

In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
This is self.url in BeatportRelease.__init__: https://beatport.com/release/consciousness-ep/371304
This would be url key in the api response: https://api.beatport.com/v4/catalog/releases/371304/

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/1149518/
This is self.url in BeatportRelease.__init__: https://beatport.com/release/1-city-1-song/1149518
'url' key is not available from the api response!

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/1149518/tracks/
'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/1-city-1-song/1149518
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/1-city-1-song/4670926
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/4670926/

In _get_track_info, this is track.number: None
This is self.url in BeatportRelease.__init__: https://beatport.com/release/1-city-1-song/1149518
This would be url key in the api response: https://api.beatport.com/v4/catalog/releases/1149518/

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/2539993/
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/2539993/tracks/
'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/jinja-on-the-nile/11744564
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744564/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/wood-of-the-lusamba/11744565
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744565/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/mbale/11744566
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744566/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/fresh-ice-cream/11744567
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744567/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/albert-plays-the-flute/11744568
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744568/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/binding-the-arched-harp/11744569
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744569/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/the-story-of-walumbe/11744570
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744570/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/boda-has-no-radio/11744571
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/11744571/

In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
This is self.url in BeatportRelease.__init__: https://beatport.com/release/memorias-vol-1-bugandan-sacred-places/2539993
This would be url key in the api response: https://api.beatport.com/v4/catalog/releases/2539993/

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/386930/
This is self.url in BeatportRelease.__init__: https://beatport.com/release/every-night-pt-1/386930
'url' key is not available from the api response!

In Beatport4Client._get this is the url we are fetching from:
https://api.beatport.com/v4/catalog/releases/386930/tracks/
'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/every-night-pt-1/386930
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/every-night/1991846
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1991846/

'number' was not found in BeatportTrack.__init__
This is self.url in BeatportRelease.__init__: https://beatport.com/release/every-night-pt-1/386930
'url' key is not available from the api response!

This is self.number in BeatportTrack.__init__: None
This is self.url in BeatportTrack.__init__: https://beatport.com/track/every-night/1991847
This would be url key in the api response: https://api.beatport.com/v4/catalog/tracks/1991847/

In _get_track_info, this is track.number: None
In _get_track_info, this is track.number: None
This is self.url in BeatportRelease.__init__: https://beatport.com/release/every-night-pt-1/386930
This would be url key in the api response: https://api.beatport.com/v4/catalog/releases/386930/

/remote/data/music-archive/0-andi/Februar 2011/Alexander Ross - 01 - Room.mp3 (1 items)
Correcting tags from:
    Alexander Ross - Universal Consciousness 1.1
To:
    Argy, Alexander Ross - Universal Consciousness 1.1
URL:
    https://beatport.com/release/universal-consciousness-11/217494
(Similarity: 78.1%) (media, missing tracks, artist, source, tracks) (Beatport, Digital, 2010, These Days, TD05)
 * Room (#1) -> Room (#None) (source)
Missing tracks (1/2 - 50.0%):
 ! Sometimes I'm Blind (#None) (6:31)
[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? b
Samik081 commented 1 year ago

Hey @JOJ0, thank you for help with debugging it! Looks like the issue lays in the fact, that beatport does not return the number field in /catalog/releases/{releaseId}/tracks call. To fix this, I just added additional call to /catalog/tracks/{trackId} where the number is already present. This commit fixes this: https://github.com/Samik081/beets-beatport4/commit/9071e60c0730990fc7ca039a0bae0324bb6ac613, released in https://github.com/Samik081/beets-beatport4/releases/tag/v0.2.6