beetbox / beetbox/beets

absubmit: Handle invalid JSON

Open
#3,527 4 comments 0 reactions 0 assignees View on GitHub
absubmit bug
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

### Problem

Running this command in verbose (`-vv`) mode:

```sh
$ beet -vv absubmit
```

Led to this problem:

```
user configuration: /home/soergeld/.config/beets/config.yaml
data directory: /home/soergeld/.config/beets
plugin paths: /home/soergeld/beets-alternatives/beetsplug
Sending event: pluginload
inline: adding item field pw
inline: adding item field aa
inline: adding item field aaa
inline: adding item field pc
inline: adding item field tr
inline: adding item field work_prefix
inline: adding item field type
inline: adding item field dupe
library database: /media/soergeld/My Passport/Musicdata_sync.db
library directory: /media/soergeld/My Passport
Sending event: library_opened
absubmit: Failed to analyse Ludwig van Beethoven - Missa Solemnis / Mass in C - Mass in C major, Op. 86: I. Kyrie for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 5
absubmit: Failed to analyse Ludwig van Beethoven - The Early String Quartets, op. 18 - String Quartet in B-flat major, op. 18 no. 6: II. Adagio ma non troppo for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status -11
absubmit: Failed to analyse Ludwig van Beethoven - Complete String Quartets - String Quartet No. 1 in F major, Op. 18 No. 1: I. Allegro con brio for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 4
absubmit: Failed to analyse Ludwig van Beethoven - Missa Solemnis / Mass in C - Mass in D major "Missa Solemnis", Op. 123: II. Gloria: Gloria in excelsis Deo. for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 5
absubmit: Failed to analyse Ludwig van Beethoven - The Complete EMI Recordings - Cello Sonata no. 4 in C, op. 102 no. 1: I. Andante - Allegro vivace for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status -11
absubmit: Failed to analyse Ludwig van Beethoven - The Late String Quartets, opp. 95, 127, 130–133 & 135 - String Quartet in F minor, op. 95: IV. Larghetto espressivo – Allegretto agitato – Allegro for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 1
absubmit: Failed to analyse Ludwig van Beethoven - Complete String Quartets - String Quartet No. 1 in F major, Op. 18 No. 1: II. Adagio affettuoso ed appassionato for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 4
absubmit: Failed to analyse Ludwig van Beethoven - Missa Solemnis / Mass in C - Mass in D major "Missa Solemnis", Op. 123: II. Gloria: Qui tollis for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 5
absubmit: Failed to analyse Ludwig van Beethoven - Complete String Quartets - String Quartet No. 1 in F major, Op. 18 No. 1: III. Scherzo. Allegro molto for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 4
absubmit: Failed to analyse Ludwig van Beethoven - Complete String Quartets - String Quartet No. 2 in G major, Op. 18 No. 2: I. Allegro for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 4
absubmit: Failed to analyse Ludwig van Beethoven - Missa Solemnis / Mass in C - Mass in D major "Missa Solemnis", Op. 123: II. Gloria: Quoniam for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 5
absubmit: Failed to analyse Ludwig van Beethoven - Missa Solemnis / Mass in C - Mass in D major "Missa Solemnis", Op. 123: III. Credo: Credo for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 5
absubmit: Failed to analyse Ludwig van Beethoven - Missa Solemnis / Mass in C - Mass in D major "Missa Solemnis", Op. 123: III. Credo: Et incarnatus est for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 5
absubmit: Failed to analyse Ludwig van Beethoven - Missa Solemnis / Mass in C - Mass in D major "Missa Solemnis", Op. 123: V. Agnus Dei: Agnus Dei for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 5
absubmit: Failed to analyse Ludwig van Beethoven - Mozart / Schubert / Beethoven / Wagner - Fidelio op. 72, Act 2: "Gott! Welch dunkel hier!" in des Lebens Frühlingstagen" for AcousticBrainz: b'/home/soergeld/abzsubmit-0.1/streaming_extractor_music' exited with status 1
Traceback (most recent call last):
File "/usr/local/bin/beet", line 11, in
load_entry_point('beets==1.5.0', 'console_scripts', 'beet')()
File "/usr/local/lib/python3.6/dist-packages/beets/ui/__init__.py", line 1267, in main
_raw_main(args)
File "/usr/local/lib/python3.6/dist-packages/beets/ui/__init__.py", line 1254, in _raw_main
subcommand.func(lib, suboptions, subargs)
File "/usr/local/lib/python3.6/dist-packages/beetsplug/absubmit.py", line 126, in command
util.par_map(self.analyze_submit, items)
File "/usr/local/lib/python3.6/dist-packages/beets/util/__init__.py", line 1050, in par_map
pool.map(transform, items)
File "/usr/lib/python3.6/multiprocessing/pool.py", line 266, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/usr/lib/python3.6/multiprocessing/pool.py", line 644, in get
raise self._value
File "/usr/lib/python3.6/multiprocessing/pool.py", line 119, in worker
result = (True, func(*args, **kwds))
File "/usr/lib/python3.6/multiprocessing/pool.py", line 44, in mapstar
return list(map(*args))
File "/usr/local/lib/python3.6/dist-packages/beetsplug/absubmit.py", line 131, in analyze_submit
analysis = self._get_analysis(item)
File "/usr/local/lib/python3.6/dist-packages/beetsplug/absubmit.py", line 174, in _get_analysis
analysis = json.load(tmp_file)
File "/usr/lib/python3.6/json/__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 627 column 21 (char 50703)

```

Here's a link to the music files that trigger the bug (if relevant):

### Setup

* OS: Ubuntu
* Python version: 3.7
* beets version: 1.50
* Turning off plugins made problem go away (yes/no): yes, no ```absubmit```, no problem!

My configuration (output of `beet config`) is:

```yaml
directory: /media/soergeld/My Passport
library: /media/soergeld/My Passport/Musicdata_sync.db
bell: yes
asciify_paths: yes
threaded: yes

import:
copy: no
write: no
incremental: no
detail: yes
languages: en
duplicate_action: keep
per_disc_numbering: yes
pluginpath: /home/soergeld/beets-alternatives/beetsplug

plugins: duplicates info mbsync badfiles fromfilename mbsubmit mbcollection absubmit fetchart embedart chroma parentwork inline bucket alternatives scrub
scrub:
auto: no
absubmit:
auto: no
extractor: /home/soergeld/abzsubmit-0.1/streaming_extractor_music
force: no
pretend: no
color: yes
item_fields:
pw: "try:\n pw=parentwork\n try: \n pw+=' ('+parentwork_disambig+')'\n except NameError:\n pass\n return pw\nexcept NameError:\n return 'No_Work'\n"
aa: "singleton=album_id==None or album_id==''\nif not singleton:\n return album\nelse:\n return artist_sort\n"
aaa: "singleton=album_id==None or album_id==''\nif not singleton:\n if ';' in albumartist_sort:\n aaa=albumartist_sort.split(';')[1].strip()\n else: \n aaa=albumartist_sort\n return aaa\n"
pc: "try: \n return parent_composer_sort\n parent_composer_sort.split(',')\n pc=[]\n fam=True\n for p in parent_composer_sort.split(','):\n if p=='Sir' or p=='Dame':\n continue\n if fam:\n pc.append(p.strip())\n else: \n a=p.split()\n b=[]\n for x in a:\n if previous.strip()=='Strauss' or x=='van' or x=='von' or x=='de' or x==u'd\u2019' or x==\"d'\":\n b.append(x)\n else: \n b.append(x.strip()[0])\n pc.append(' '.join(b))\n previous=p\n if p.strip() != '[anonymous]' and p.strip() != '[unknown]' and p.strip() != '[traditional]' and p!= 'Various Artists':\n fam=not fam\n return(', '.join(pc))\nexcept NameError:\n return 'No_Parent_Composer'\n"
tr: "singleton=album_id==None or album_id==''\nif singleton:\n tr=title\nelse:\n if disc==0:\n tr=title\n else:\n tr=str(disc)+'-' + str(track) + ' ' + title\nreturn tr\n"
work_prefix: "try: \n parentwork\nexcept NameError: \n return 'None'\npartnames = ['Concerto', 'Concerti']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Concertos'\npartnames = ['Cantata', 'Cantate','Kantate']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Cantates'\npartnames = ['choralsatz']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Chorals\xE4tze'\npartnames = ['symphony', 'symphonie', 'sinfonie']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Symphonies'\npartnames = ['Church']\nfor n in partnames: \n if n.upper() in parentwork.upper() and parent_composer_sort=='Mozart, Wolfgang Amadeus': \n return 'Church Sonatas'\npartnames = ['Mass', 'Messe', 'Missa']\nfor n in partnames: \n if n.upper() in parentwork.upper() and parent_composer_sort=='Mozart, Wolfgang Amadeus': \n return 'Messes'\npartnames = ['Quartet', 'Quatuor']\n\
for n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Quatuors'\npartnames = ['Quintet']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Quintettes'\npartnames = ['Trio']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Trios'\npartnames = ['Sonate','Sonata']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Sonates'\npartnames = ['choralbearbeitung']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Choralbearbeitungen'\npartnames = ['Partita']\nfor n in partnames: \n if n.upper() in parentwork.upper(): \n return 'Partitas'\nreturn 'None'\n"
type: "nc_artist = []\nnc_albumartist = []\nnc_album = []\nnc_artist_sort = []\nnc_albumartist_sort= []\nnc_albumartist_sort = [\n u'Ellington, Duke & His Orchestra featuring Jackson, Mahalia',\n u'Wise Guys',\n u'Amstrong, Louis',\n u'Aznavour, Charles',\n u'Bach, P.D.Q.',\n u'Bach, P.D.Q. & Schickele, Peter',\n u'Basie, Count',\n u'Bauer, Axel',\n u'Bechet, Sidney',\n u'Berry, Chuck',\n u'Bolling, Claude',\n u'Brubeck, Dave',\n u'Brubeck, Dave, Quartet, The',\n u'Chanticleer',\n u'Charles, Ray',\n u'Coltrane, John',\n u'Corea, Chick / Vitou\u0161, Miroslav / Haynes, Roy',\n u'Corrs, The',\n u'Davis, Miles',\n u'Ellington, Duke',\n u'Ellington, Duke & His Orchestra feat. Jackson, Mahalia',\n u'Epica',\n u'Faun',\n u'Ferr\xE9, L\xE9o',\n u'Fitzgerald, Ella & Armstrong, Louis',\n u'Franklin, Aretha',\n u'Galway, James & Chieftains, The',\n u'Gr\xE9co, Juliette',\n u'Guaraldi, Vince',\n u'Hancock,\
\ Herbie',\n u'Harten, Jennifer van der',\n u'Holiday, Billie',\n u'Hopkins, Lightnin\u2019',\n u'Humair, Daniel',\n u'Indochine',\n u'Jarrett, Keith Trio',\n u'Lehrer, Tom',\n u'Lockwood, Didier',\n u'Lucia, Paco de, Di Meola, Al & McLaughlin, John',\n u'Molloy, Matt',\n u'Monk, Thelonious',\n u'Monty Python',\n u'Morricone, Ennio',\n u'Mulligan, Gerry',\n u'Muse',\n u'Muzsik\xE1s feat. Sebesty\xE9n, M\xE1rta & B\u0103l\u0103nescu, Alexander',\n u'Omnia',\n u'Redman, Joshua',\n u'Reggiani, Serge',\n u'Rondeau, Jean',\n u'Shore, Howard',\n u'Simon & Garfunkel',\n u'Sinatra, Frank',\n u'Terfel, Bryn, Martineau, Malcolm',\n u'Watson, Doc',\n u'White, Jack & Keys, Alicia',\n u'Williams, John',\n u'Williams, John, Boston Pops Orchestra',\n u'Williams, John, Hovhaness, Alan; London Symphony Orchestra, LeClair, Judith, Williams, John',\n u'Cole, Nat King',\n u'Cole, Nat King, Trio, The',\n u'Empire\
\ Brass & Friends',\n u'Peterson, Oscar, Trio, The',\n u'Sandy Lopicic Orkestar',\n u'Wise Guys',\n u'Amstrong, Louis',\n u'Aznavour, Charles',\n u'Bach, P.D.Q.',\n u'Bach, P.D.Q. & Schickele, Peter',\n u'Basie, Count',\n u'Bauer, Axel',\n u'Bechet, Sidney',\n u'Berry, Chuck',\n u'Bolling, Claude',\n u'Brubeck, Dave',\n u'Brubeck, Dave, Quartet, The',\n u'Chanticleer',\n u'Charles, Ray',\n u'Coltrane, John',\n u'Corea, Chick / Vitou\u0161, Miroslav / Haynes, Roy',\n u'Corrs, The',\n u'Davis, Miles',\n u'Ellington, Duke',\n u'Ellington, Duke & His Orchestra feat. Jackson, Mahalia',\n u'Epica',\n u'Faun',\n u'Ferr\xE9, L\xE9o',\n u'Fitzgerald, Ella & Armstrong, Louis',\n u'Franklin, Aretha',\n u'Galway, James & Chieftains, The',\n u'Gr\xE9co, Juliette',\n u'Guaraldi, Vince',\n u'Hancock, Herbie',\n u'Harten, Jennifer van der',\n u'Holiday, Billie',\n u'Hopkins, Lightnin\u2019',\n \
\ u'Humair, Daniel',\n u'Indochine',\n u'Jarrett, Keith Trio',\n u'Lehrer, Tom',\n u'Lockwood, Didier',\n u'Lucia, Paco de, Di Meola, Al & McLaughlin, John',\n u'Molloy, Matt',\n u'Monk, Thelonious',\n u'Monty Python',\n u'Morricone, Ennio',\n u'Mulligan, Gerry',\n u'Muse',\n u'Muzsik\xE1s feat. Sebesty\xE9n, M\xE1rta & B\u0103l\u0103nescu, Alexander',\n u'Omnia',\n u'Redman, Joshua',\n u'Reggiani, Serge',\n u'Rondeau, Jean',\n u'Shore, Howard',\n u'Simon & Garfunkel',\n u'Sinatra, Frank',\n u'Terfel, Bryn, Martineau, Malcolm',\n u'Watson, Doc',\n u'White, Jack & Keys, Alicia',\n u'Williams, John',\n u'Williams, John, Boston Pops Orchestra',\n u'Williams, John, Hovhaness, Alan; London Symphony Orchestra, LeClair, Judith, Williams, John',\n u'Cole, Nat King',\n u'Cole, Nat King, Trio, The',\n u'Empire Brass & Friends',\n u'Peterson, Oscar, Trio, The',\n u'Sandy Lopicic Orkestar']\nnc_album\
\ = [\n u'Lambarena: Bach to Africa',\n u'Famous Jazz Singers Vol. 1',\n u'Un Toque de Jazz',\n u'Jazz Brasil 2',\n u'Jazz Piano',\n u'Un toque de Jazz (Y una nota azul)'\n u'The Verve Story: 1944-1994'\n u'Bye Bye Blackbird']\nnc_albumartist = [\n u'Ben Webster, Richard \u201CGroove\u201D Holmes & Les McCann']\nnc_artist_sort = [\n u'Arctic Monkeys',\n u'Barrueco, Manuel',\n u'Bashung, Alain',\n u'Bauer, Axel',\n u'Beatles, The',\n u'Black Sabbath',\n u'Bloc Party',\n u'Blues Brothers',\n u'Boston Pops Orchestra & Williams, John',\n u'Breakbot feat. Irfane',\n u'Calling, The',\n u'Cardigans, The',\n u'Collins, Phil',\n u'Conspirare, Johnson, Craig Hella',\n u'Crespo, Elvis',\n u'Daft Punk',\n u'Debargue, Lucas',\n u'DragonForce',\n u'Eisler, Hanns',\n u'Endless Sporadic, An',\n u'Franz Ferdinand',\n u'Greene, Arthur, Soroka, Solomia',\n u'Guess Who, The',\n u'Guns N\u2019 Roses',\n\
\ u'Henry, Pierre',\n u'Hogan, Moses & Mormon Tabernacle Choir',\n u'Hush Puppies, The',\n u'Ibragimova, Alina, Tiberghien, C\xE9dric',\n u'Indochine',\n u'Iron Maiden',\n u'Ivashkin, Alexander',\n u'Jackson, Michael',\n u'John, Elton',\n u'Johnson, Eric',\n u'Judas Priest',\n u'Jussila, Kari, Segerstam, Leif, Segerstam, Leif',\n u'Kavakos, Leonidas, Nagy, P\xE9ter',\n u'Ka\u0148ka, Michal, Klep\xE1\u010D, Jarom\xEDr',\n u'Killers, The',\n u'Komsi, Anu, Rantanen, Riikka, Avanti!, Lintu, Hannu',\n u'Kravitz, Lenny',\n u'Led Zeppelin',\n u'Limp Bizkit',\n u'Linkin Park',\n u'Living Colour',\n u'L\xFAnasa',\n u'Martin, George and Martin, George, Orchestra',\n u'Massive Attack',\n u'Matchbook Romance',\n u'McCartney, Paul',\n u'Metallica',\n u'Moby',\n u'Modjo',\n u'Muse',\n u'Nirvana',\n u'Oasis',\n u'Offspring, The',\n u'Orson',\n u'Papa Roach',\n u'Paramore',\n u'Pickett,\
\ Wilson',\n u'Pink Floyd',\n u'Placebo',\n u'Police, The',\n u'Priestess',\n u'Queen',\n u'Queens of the Stone Age',\n u'Radiohead',\n u'Rage Against the Machine',\n u'Ram Jam',\n u'Rolling Stones, The',\n u'Santana',\n u'Scorpions',\n u'Scruff, Mr.',\n u'Slayer',\n u'Sleeping, The',\n u'Smashing Pumpkins, The',\n u'Sting',\n u'Strokes, The',\n u'U2',\n u'Van Halen',\n u'Vassiliev, Alexei, Malov, Oleg',\n u'Vaughan, Stevie Ray and Double Trouble',\n u'Weir, Gillian, City of London Sinfonia, Hickox, Richard',\n u'ZZ Top',\n u'Arctic Monkeys',\n u'Barrueco, Manuel',\n u'Bashung, Alain',\n u'Bauer, Axel',\n u'Beatles, The',\n u'Black Sabbath',\n u'Bloc Party',\n u'Blues Brothers',\n u'Boston Pops Orchestra & Williams, John',\n u'Breakbot feat. Irfane',\n u'Calling, The',\n u'Cardigans, The',\n u'Collins, Phil',\n u'Conspirare, Johnson, Craig Hella',\n u'Crespo, Elvis',\n\
\ u'Daft Punk',\n u'Debargue, Lucas',\n u'DragonForce',\n u'Eisler, Hanns',\n u'Endless Sporadic, An',\n u'Franz Ferdinand',\n u'Greene, Arthur, Soroka, Solomia',\n u'Guess Who, The',\n u'Guns N\u2019 Roses',\n u'Henry, Pierre',\n u'Hogan, Moses & Mormon Tabernacle Choir',\n u'Hush Puppies, The',\n u'Ibragimova, Alina, Tiberghien, C\xE9dric',\n u'Indochine',\n u'Iron Maiden',\n u'Ivashkin, Alexander',\n u'Jackson, Michael',\n u'John, Elton',\n u'Johnson, Eric',\n u'Judas Priest',\n u'Jussila, Kari, Segerstam, Leif, Segerstam, Leif',\n u'Kavakos, Leonidas, Nagy, P\xE9ter',\n u'Ka\u0148ka, Michal, Klep\xE1\u010D, Jarom\xEDr',\n u'Killers, The',\n u'Komsi, Anu, Rantanen, Riikka, Avanti!, Lintu, Hannu',\n u'Kravitz, Lenny',\n u'Led Zeppelin',\n u'Limp Bizkit',\n u'Linkin Park',\n u'Living Colour',\n u'L\xFAnasa',\n u'Martin, George and Martin, George, Orchestra',\n u'Massive Attack',\n\
\ u'Matchbook Romance',\n u'McCartney, Paul',\n u'Metallica',\n u'Moby',\n u'Modjo',\n u'Muse',\n u'Nirvana',\n u'Oasis',\n u'Offspring, The',\n u'Orson',\n u'Papa Roach',\n u'Paramore',\n u'Pickett, Wilson',\n u'Pink Floyd',\n u'Placebo',\n u'Police, The',\n u'Priestess',\n u'Queen',\n u'Queens of the Stone Age',\n u'Radiohead',\n u'Rage Against the Machine',\n u'Ram Jam',\n u'Rolling Stones, The',\n u'Santana',\n u'Scorpions',\n u'Scruff, Mr.',\n u'Slayer',\n u'Sleeping, The',\n u'Smashing Pumpkins, The',\n u'Sting',\n u'Strokes, The',\n u'U2',\n u'Van Halen',\n u'Vassiliev, Alexei, Malov, Oleg',\n u'Vaughan, Stevie Ray and Double Trouble',\n u'Weir, Gillian, City of London Sinfonia, Hickox, Richard',\n u'ZZ Top']\nnc_artist = [\n u'Louis Armstrong',\n u'Archive',\n u'Sergei Grishenko',\n u'Led Zeppelin',\n u'Louis Armstrong',\n u'Archive',\n u'Sergei\
\ Grishenko',\n u'Led Zeppelin']\nif artist in nc_artist or albumartist in nc_albumartist or album in nc_album or artist_sort in nc_artist_sort or albumartist_sort in nc_albumartist_sort:\n return 'non-classical'\nmedieval=[u'Coro de monjes de la Abad\xEDa de Montserrat, Choralschola des Klosters Maria Einsiedeln, Choralschola der Benediktinerabtei M\xFCnsterschwarzach, Ch\u0153ur des moines de l\u2019Abbaye Notre-Dame de Fontgombault, The Benedictine Monks of Santo Domingo de Silos, Cappella Musicale del duomo di Milano', u'Hildegard von Bingen; Ensemble Belcanto, Dietburg Spohr', u'Hildegard von Bingen; Gothic Voices, Christopher Page, Emma Kirkby']\nif albumartist in medieval:\n return 'medieval'\nreturn 'classical'\nif artist in nc_artist or albumartist in nc_albumartist or album in nc_album or artist_sort in nc_artist_sort or albumartist_sort in nc_albumartist_sort:\n return 'non-classical'\nmedieval=['Coro de monjes de la Abad\xEDa de Montserrat, Choralschola des\
\ Klosters Maria Einsiedeln, Choralschola der Benediktinerabtei M\xFCnsterschwarzach, Ch\u0153ur des moines de l\u2019Abbaye Notre-Dame de Fontgombault, The Benedictine Monks of Santo Domingo de Silos, Cappella Musicale del duomo di Milano', u'Hildegard von Bingen; Gothic Voices, Christopher Page, Emma Kirkby']\nif albumartist in medieval:\n return 'medieval'\nreturn 'classical'\n"
dupe: "singleton=album_id==None or album_id==''\nif singleton:\n return mb_trackid\nelse: \n return mb_trackid+str(track)+mb_releasegroupid\n\n \n"

ui:
color: yes
colors:
text_success: green
text_warning: yellow
text_error: red
text_highlight: red
text_highlight_minor: lightgray
action_default: turquoise
action: blue
chroma:
auto: no
embedart:
remove_art_file: yes
maxwidth: 0
auto: yes
compare_threshold: 0
ifempty: no
quality: 0
missing:
count: yes
duplicates:
tiebreak:
items: [bitrate]
keys: [dupe]
album: no
checksum: ''
copy: ''
count: no
delete: no
format: ''
full: no
merge: no
move: ''
path: no
strict: no
tag: ''
parentwork:
force: no
auto: no
mbsubmit:
format: $title - $artist ($length)
threshold: strong
acoustid:
apikey: REDACTED

musicbrainz:
user: dosoe
pass: REDACTED
alternatives:
by-work:
directory: /media/soergeld/My Passport/by-work

paths:
comp type::'non-classical': Non-Classique/$aaa/$aa/$tr
type::'non-classical': Non-Classique/$aaa/$aa/$tr
comp type::'medieval': Medieval/$aaa/$aa/$tr
type::'medieval': Medieval/$aaa/$aa/$tr
comp pw::'No_Work': Classique/$artist_sort/Divers/$aaa/$aa/$tr
pw::'No_Work': Classique/$artist_sort/Divers/$aaa/$aa/$tr
comp pc::'No_Parent_Composer': Classique/$artist_sort/$pw/$aaa/$aa/$tr
pc::'No_Parent_Composer': Classique/$artist_sort/$pw/$aaa/$aa/$tr
comp work_prefix::'None': Classique/$pc/$pw/$aaa/$aa/$tr
work_prefix::'None': Classique/$pc/$pw/$aaa/$aa/$tr
comp: Classique/$pc/$work_prefix/$pw/$aaa/$aa/$tr
default: Classique/$pc/$work_prefix/$pw/$aaa/$aa/$tr
formats: link

paths:
singleton: by-album/$artist_sort/%ifdef{composer,/$composer_sort/$title,$title}
comp: by-album/$albumartist_sort/$album/$disc-$track $title
default: by-album/$albumartist_sort/$album/$disc-$track $title
mbcollection:
auto: no
collection: ''
remove: no
fetchart:
auto: yes
minwidth: 0
maxwidth: 0
quality: 0
enforce_ratio: no
cautious: no
cover_names:
- cover
- front
- art
- album
- folder
sources:
- filesystem
- coverart
- itunes
- amazon
- albumart
google_key: REDACTED
google_engine: 001442825323518660753:hrh5ch1gjzm
fanarttv_key: REDACTED
store_source: no
high_resolution: no
bucket:
bucket_year: []
bucket_alpha: []
bucket_alpha_regex: {}
extrapolate: no
pathfields: {}
album_fields: {}
```

Contributor guide

Open the contributing guide

Research direction

Start with beetsplug/absubmit.py, especially analyze_submit and _get_analysis where the traceback reaches json.load(tmp_file). Reproduce with beet -vv absubmit using a recording that causes the extractor failure, then inspect how its output is consumed. Done means failed analysis does not crash the beets command and existing successful analyses continue to work.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.