beetbox / beets

music library manager and MusicBrainz tagger
http://beets.io/
MIT License
12.97k stars 1.83k forks source link

Beatport: IndexError: list index out of range #3452

Closed markwoitaszek closed 4 years ago

markwoitaszek commented 4 years ago

This issue appears to be related to https://github.com/beetbox/beets/issues/2302

running command: beet import /downloads After entering a beatport id, the following error is displayed

File "/usr/lib/python3.7/site-packages/beetsplug/beatport.py", line 153, in get_release 
     release = BeatportRelease(response[0])
IndexError: list index out of range

It appears this was fixed for discogs in https://github.com/beetbox/beets/pull/2354

The following is the full message

Finding tags for album "Cabriolet Paris - ".
Candidates:
1. Cabriolet Paris - VersaLife (44.3%) (album, source, tracks) (Beatport, Digital, 2019, Magik Muzik, MM12930)
2. Cabriolet Paris - Lagos (30.4%) (album, source, tracks) (Beatport, Digital, 2014, Lordag Records, LORDAG040)
3. Cabriolet Paris, Reeco - Tanzania (24.3%) (album, source, tracks, ...) (Beatport, Digital, 2017, Sirup Music, SIR811)
4. Cressida, Cabriolet Paris - Sub Culture Code (20.8%) (album, source, tracks, ...) (Beatport, Digital, 2019, Euphonic, EUPH277)
5. Pixie Paris - Cabriolet (16.3%) (album, source, tracks, ...) (Beatport, Digital, 2017, Ultra, UL8957)
# selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? I
Enter release ID: 9542634
Traceback (most recent call last):
  File "/usr/bin/beet", line 11, in <module>
    load_entry_point('beets==1.4.9', 'console_scripts', 'beet')()
  File "/usr/lib/python3.7/site-packages/beets/ui/__init__.py", line 1266, in main
    _raw_main(args)
  File "/usr/lib/python3.7/site-packages/beets/ui/__init__.py", line 1253, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/usr/lib/python3.7/site-packages/beets/ui/commands.py", line 955, in import_func
    import_files(lib, paths, query)
  File "/usr/lib/python3.7/site-packages/beets/ui/commands.py", line 925, in import_files
    session.run()
  File "/usr/lib/python3.7/site-packages/beets/importer.py", line 329, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/usr/lib/python3.7/site-packages/beets/util/pipeline.py", line 445, in run_parallel
    six.reraise(exc_info[0], exc_info[1], exc_info[2])
  File "/usr/lib/python3.7/site-packages/six.py", line 696, in reraise
    raise value
  File "/usr/lib/python3.7/site-packages/beets/util/pipeline.py", line 312, in run
    out = self.coro.send(msg)
  File "/usr/lib/python3.7/site-packages/beets/util/pipeline.py", line 171, in coro
    task = func(*(args + (task,)))
  File "/usr/lib/python3.7/site-packages/beets/importer.py", line 1375, in user_query
    task.choose_match(session)
  File "/usr/lib/python3.7/site-packages/beets/importer.py", line 838, in choose_match
    choice = session.choose_match(self)
  File "/usr/lib/python3.7/site-packages/beets/ui/commands.py", line 725, in choose_match
    post_choice = choice.callback(self, task)
  File "/usr/lib/python3.7/site-packages/beets/ui/commands.py", line 670, in manual_id
    task.items, search_ids=search_id.split()
  File "/usr/lib/python3.7/site-packages/beets/autotag/match.py", line 424, in tag_album
    for id_candidate in hooks.albums_for_id(search_id):
  File "/usr/lib/python3.7/site-packages/beets/autotag/hooks.py", line 578, in albums_for_id
    for a in plugins.album_for_id(album_id):
  File "/usr/lib/python3.7/site-packages/beets/plugins.py", line 400, in album_for_id
    album = plugin.album_for_id(album_id)
  File "/usr/lib/python3.7/site-packages/beetsplug/beatport.py", line 374, in album_for_id
    release = self.client.get_release(match.group(2))
  File "/usr/lib/python3.7/site-packages/beetsplug/beatport.py", line 153, in get_release
    release = BeatportRelease(response[0])
IndexError: list index out of range
sampsyo commented 4 years ago

Hi! Can you please include the information from the issue template, such as the version of beets you’re using? (Does it still happen on the latest source?)

jottr commented 4 years ago

I'm seeing this error on the release:

$ beets --version
beets version 1.4.9
Python version 3.6.5
plugins: convert, discogs, duplicates, edit, embedart, fetchart, fromfilename, ftintitle, importfeeds, inline, lastgenre, mbsync, play, scrub
sampsyo commented 4 years ago

Got it; thanks. The plugin has changed quite a bit lately on master... any chance I could convince you to give this a try using the latest source?

jottr commented 4 years ago

@sampsyo not really at the moment. Can't you simply test it on your machine?

sampsyo commented 4 years ago

Sorry, no, not without a precise accounting of exactly how to reproduce the problem.

In general, @jottr, I think it would be worth keeping in mind that open-source projects are inherently very collaborative—unlike a support request to a commercial company, a ticket on an OSS project can't sustainably trigger developers to do lots of legwork to investigate, understand, and reproduce a problem. A better balance involves work on the behalf of the user to help nail down exactly what needs to be fixed.

michaeltoohig commented 4 years ago

Okay so I ran into the same issue and then updated to the newest 1.5 version. Here is my console.

Finding tags for album "Paul C - ".
Candidates:
1. Paul C, Kaiq - Paul C - Time To Jack Ep (22.8%) (album, missing tracks, tracks, ...) (Beatport, Digital, 2018, Posh Records, PHR001)
2. Paul Weller - Paul Weller (17.9%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 2016, UK, UMC, 4797824)
3. Various Artists - U+I (incl. Betoko, Darius Syrossian, Paul C & Paolo Martini) (15.6%) (album, missing tracks, tracks, ...) (Beatport, Digital, 2014, Hedonism Music, HED004)
4. Paul Weller - Paul Weller (14.2%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1992, Europe, Go! Discs, 828 343-1)
5. Paul Simon - Paul Simon (14.2%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1972, US, Columbia, KC 30750)
6. Paul Simon - Paul Simon (13.9%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1972, UK, CBS, 69007)
7. Paul Revere & The Raiders - Paul Revere & The Raiders' Greatest Hits (10.0%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1967, US, Columbia, KCS 9462)
8. Various Artists - Boarding Gate 2 - Compiled By Monika Kruse - Mixed By Paul C & Paolo Martini (7.7%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2014, Terminal M, TERMDIG3)
9. Various Artists - Paul C Presents Selezione Naturale Volume 36 (7.1%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2018, Natura Viva, NAT577)
10. Various Artists - The Best of Snatch! 2016 - Selected by Paul C & Paolo Martini (6.2%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2016, Snatch! Records, SNACAT006)
# selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? I
Enter release ID: https://www.beatport.com/track/coney-island-original-mix/12929821
No matching release found for 1 tracks.
For help, see: http://beets.readthedocs.org/en/latest/faq.html#nomatch
[S]kip, Use as-is, as Tracks, Group albums, Enter search, enter Id, aBort? I
Enter release ID: 12929821
Traceback (most recent call last):
  File "/home/michael/.local/bin/beet", line 11, in <module>
    sys.exit(main())
  File "/home/michael/.local/lib/python2.7/site-packages/beets/ui/__init__.py", line 1266, in main
    _raw_main(args)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/ui/__init__.py", line 1253, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/ui/commands.py", line 955, in import_func
    import_files(lib, paths, query)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/ui/commands.py", line 925, in import_files
    session.run()
  File "/home/michael/.local/lib/python2.7/site-packages/beets/importer.py", line 329, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/util/pipeline.py", line 445, in run_parallel
    six.reraise(exc_info[0], exc_info[1], exc_info[2])
  File "/home/michael/.local/lib/python2.7/site-packages/beets/util/pipeline.py", line 312, in run
    out = self.coro.send(msg)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/util/pipeline.py", line 171, in coro
    task = func(*(args + (task,)))
  File "/home/michael/.local/lib/python2.7/site-packages/beets/importer.py", line 1375, in user_query
    task.choose_match(session)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/importer.py", line 838, in choose_match
    choice = session.choose_match(self)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/ui/commands.py", line 725, in choose_match
    post_choice = choice.callback(self, task)
  File "/home/michael/.local/lib/python2.7/site-packages/beets/ui/commands.py", line 670, in manual_id
    task.items, search_ids=search_id.split()
  File "/home/michael/.local/lib/python2.7/site-packages/beets/autotag/match.py", line 424, in tag_album
    for id_candidate in hooks.albums_for_id(search_id):
  File "/home/michael/.local/lib/python2.7/site-packages/beets/autotag/hooks.py", line 578, in albums_for_id
    for a in plugins.album_for_id(album_id):
  File "/home/michael/.local/lib/python2.7/site-packages/beets/plugins.py", line 400, in album_for_id
    album = plugin.album_for_id(album_id)
  File "/home/michael/.local/lib/python2.7/site-packages/beetsplug/beatport.py", line 374, in album_for_id
    release = self.client.get_release(match.group(2))
  File "/home/michael/.local/lib/python2.7/site-packages/beetsplug/beatport.py", line 153, in get_release
    release = BeatportRelease(response[0])
IndexError: list index out of range
[michael:/mnt/e/Library/Techno]$ beet --version
beets version 1.4.9
Python version 2.7.13
plugins: artistcountry, beatport, discogs, fromfilename, info, scrub, the, types

[michael:/mnt/e/Library/Techno]$ beet --version
beets version 1.5.0
Python version 2.7.13
plugins: beatport, discogs, fromfilename, info, scrub, the, types
[michael:/mnt/e/Library/Techno]$ beet imp 05.\ Coney\ Island\ \(Original\ Mix\).mp3

/mnt/e/Library/Techno/05. Coney Island (Original Mix).mp3 (1 items)
Finding tags for album "Paul C - ".
Candidates:
1. Paul C, Kaiq - Paul C - Time To Jack Ep (22.8%) (album, missing tracks, tracks, ...) (Beatport, Digital, 2018, Posh Records, PHR001)
2. Paul Weller - Paul Weller (17.9%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 2016, UK, UMC, 4797824)
3. Various Artists - U+I (incl. Betoko, Darius Syrossian, Paul C & Paolo Martini) (15.6%) (album, missing tracks, tracks, ...) (Beatport, Digital, 2014, Hedonism Music, HED004)
4. Paul Weller - Paul Weller (14.2%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1992, Europe, Go! Discs, 828 343-1)
5. Paul Simon - Paul Simon (14.2%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1972, US, Columbia, KC 30750)
6. Paul Simon - Paul Simon (13.9%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1972, UK, CBS, 69007)
7. Paul Revere & The Raiders - Paul Revere & The Raiders' Greatest Hits (10.0%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1967, US, Columbia, KCS 9462)
8. Various Artists - Boarding Gate 2 - Compiled By Monika Kruse - Mixed By Paul C & Paolo Martini (7.7%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2014, Terminal M, TERMDIG3)
9. Various Artists - Paul C Presents Selezione Naturale Volume 36 (7.1%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2018, Natura Viva, NAT577)
10. Various Artists - The Best of Snatch! 2016 - Selected by Paul C & Paolo Martini (6.2%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2016, Snatch! Records, SNACAT006)
# selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? I
Enter release ID: 12929821
No matching release found for 1 tracks.
For help, see: https://beets.readthedocs.org/en/latest/faq.html#nomatch
[S]kip, Use as-is, as Tracks, Group albums, Enter search, enter Id, aBort? B
[michael:/mnt/e/Library/Techno]$ beet imp 05.\ Coney\ Island\ \(Original\ Mix\).mp3

/mnt/e/Library/Techno/05. Coney Island (Original Mix).mp3 (1 items)
Finding tags for album "Paul C - ".
Candidates:
1. Paul C, Kaiq - Paul C - Time To Jack Ep (22.8%) (album, missing tracks, tracks, ...) (Beatport, Digital, 2018, Posh Records, PHR001)
2. Paul Weller - Paul Weller (17.9%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 2016, UK, UMC, 4797824)
3. Various Artists - U+I (incl. Betoko, Darius Syrossian, Paul C & Paolo Martini) (15.6%) (album, missing tracks, tracks, ...) (Beatport, Digital, 2014, Hedonism Music, HED004)
4. Paul Weller - Paul Weller (14.2%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1992, Europe, Go! Discs, 828 343-1)
5. Paul Simon - Paul Simon (14.2%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1972, US, Columbia, KC 30750)
6. Paul Simon - Paul Simon (13.9%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1972, UK, CBS, 69007)
7. Paul Revere & The Raiders - Paul Revere & The Raiders' Greatest Hits (10.0%) (missing tracks, album, artist, ...) (Discogs, Vinyl, 1967, US, Columbia, KCS 9462)
8. Various Artists - Boarding Gate 2 - Compiled By Monika Kruse - Mixed By Paul C & Paolo Martini (7.7%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2014, Terminal M, TERMDIG3)
9. Various Artists - Paul C Presents Selezione Naturale Volume 36 (7.1%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2018, Natura Viva, NAT577)
10. Various Artists - The Best of Snatch! 2016 - Selected by Paul C & Paolo Martini (6.2%) (missing tracks, album, tracks, ...) (Beatport, Digital, 2016, Snatch! Records, SNACAT006)
# selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? I
Enter release ID: https://www.beatport.com/track/coney-island-original-mix/12929821
No matching release found for 1 tracks.
For help, see: https://beets.readthedocs.org/en/latest/faq.html#nomatch
[S]kip, Use as-is, as Tracks, Group albums, Enter search, enter Id, aBort? B

With the most recent version of beets entering a single track ID from beatport now returns No results when before I would get the same IndexError.

I've added other tracks with the beatport track ID today with the older 1.4 version of beets so not sure what to pin this error on yet.

michaeltoohig commented 4 years ago

So the issue I found was I was using the ID and URL of the individual track when looking closer at the traceback I see it was looking for an album ID.

Since, I put the URL of the album into the ID field it was correctly added by beets; however, I can not easily find what ID jottr was adding to see if it was an album or track to verify the same issue.

jackwilsdon commented 4 years ago

I tagged up a set of songs with just the artist "Paul C" and no other data, but couldn't replicate this on the latest master:

C:\beets>beet import C:\ToImport

C:\ToImport (15 items)
Finding tags for album "Paul C - ".
Candidates:
1. Various Artists - Paul C Presents Selezione Naturale Volume 36 (20.5%) (tracks, missing tracks, album, ...) (Beatport, Digital, 2018, Natura Viva, NAT577)
2. Paul C, Kaiq - Paul C - Time To Jack Ep (19.4%) (unmatched tracks, tracks, album, ...) (Beatport, Digital, 2018, Posh Records, PHR001)
3. Various Artists - Boarding Gate 2 - Compiled By Monika Kruse - Mixed By Paul C & Paolo Martini (16.0%) (tracks, album, missing tracks, ...) (Beatport, Digital, 2014,
 Terminal M, TERMDIG3)
4. Various Artists - The Best of Snatch! 2016 - Selected by Paul C & Paolo Martini (15.1%) (tracks, missing tracks, album, ...) (Beatport, Digital, 2016, Snatch! Record
s, SNACAT006)
5. Various Artists - U+I (incl. Betoko, Darius Syrossian, Paul C & Paolo Martini) (13.5%) (unmatched tracks, tracks, album, ...) (Beatport, Digital, 2014, Hedonism Musi
c, HED004)
# selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? I
Enter release ID: 12929821
No matching release found for 15 tracks.
For help, see: https://beets.readthedocs.org/en/latest/faq.html#nomatch
[S]kip, Use as-is, as Tracks, Group albums, Enter search, enter Id, aBort? B

C:\beets>beet --version
beets version 1.5.0
Python version 3.7.7
plugins: beatport

Can you still replicate the issue with the same album @michaeltoohig? Could you please post the output from beet config?

stale[bot] commented 4 years ago

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.