De zoekopdracht naar MusicBrainz opschonen: het ophalen gaat stuk, niet het kiezen #54

Closed
opened 2026-08-05 16:45:45 +02:00 by roelof · 0 comments
Owner

De zoekopdracht naar MusicBrainz opschonen: het ophalen gaat stuk, niet het kiezen

Van de vier tracks die nog op Onbekend stonden binnen de eerste honderd volumes
waren er drie meteen gevonden zodra de titel of de artiestnaam met de hand
gecorrigeerd was — de platen zaten dus gewoon in MusicBrainz. Het is het
ophalen dat stukgaat, niet het kiezen.
Twee gaten in de code, allebei in
MusicBrainzService, allebei klein.

1. De artiestnaam gaat ongevouwen de zoekopdracht in

De vergelijking achteraf gebruikt Fold, die van elke apostrofsoort dezelfde
maakt en diacrieten wegneemt. De zoekopdracht niet:

var query = $"artist:\"{Escape(artist)}\"";   // regel 360, 417 en 582

De tag zei Sinéad O + backtick + connor. Die backtick ging onbewerkt mee, er
kwam niets terug, en er viel dus ook niets te vergelijken — terwijl Fold het
antwoord wél had herkend als het er was geweest. Dezelfde soort fout als bij de
artiestnamen in #49, maar dan een laag eerder.

Voorstel: normaliseer de apostrofsoorten vóór het zoeken. Voorzichtig doen:
helemaal vouwen haalt ook de diacrieten weg, en MusicBrainz kent de band Live
juist als "Lïve" — dus waarschijnlijk alleen de apostrofs in de query, en Fold
laten waar hij staat voor het vergelijken. Te meten over een steekproef
artiesten die nu geen id hebben.

2. WithoutBrackets laat een achterblijvend streepje staan

private static string WithoutBrackets(string title)
{
    return Whitespace.Replace(Bracketed.Replace(title, " "), " ").Trim();
}

Heart Of Stone - (Original Single Mono Version) wordt daarmee
Heart Of Stone -, en dáár kent MusicBrainz niets van. De tweede poging komt
dus tot vlak bij het antwoord en struikelt over één teken. Zodra het streepje
weg was, was het The Rolling Stones, Now!.

3. Een editaanduiding achter een streepje heeft helemaal geen tweede poging

Blinded by the Light - Single Edit heeft geen haakjes, dus WithoutBrackets
verandert er niets aan en er komt geen tweede poging. Zonder dat staartje was
het meteen The Roaring Silence.

Voorstel: een derde poging die een - <staartje> van de titel afhaalt, ná de
volledige titel en ná de versie zonder haakjes. Dezelfde afweging als bij die
twee en bij het splitsen van artiestnamen in #49: alleen een zoektocht die al
niets opleverde betaalt de extra seconde, dus de kosten vallen op tracks die
anders Onbekend waren geworden. Let op titels waar het streepje bij de naam
hoort — daarom als laatste en niet als eerste.

Waarom het de moeite waard is

Het raakt niet de zestien die nu nog in de overloop staan (die zijn met de hand
af te doen), maar elk nieuw bestand met "- Radio Edit", "- Remastered" of een
kapotte apostrof in de tag. Die komen er steeds bij.

# De zoekopdracht naar MusicBrainz opschonen: het ophalen gaat stuk, niet het kiezen Van de vier tracks die nog op Onbekend stonden binnen de eerste honderd volumes waren er drie meteen gevonden zodra de titel of de artiestnaam met de hand gecorrigeerd was — de platen zaten dus gewoon in MusicBrainz. **Het is het ophalen dat stukgaat, niet het kiezen.** Twee gaten in de code, allebei in `MusicBrainzService`, allebei klein. ## 1. De artiestnaam gaat ongevouwen de zoekopdracht in De vergelijking achteraf gebruikt `Fold`, die van elke apostrofsoort dezelfde maakt en diacrieten wegneemt. De *zoekopdracht* niet: ```csharp var query = $"artist:\"{Escape(artist)}\""; // regel 360, 417 en 582 ``` De tag zei `Sinéad O` + backtick + `connor`. Die backtick ging onbewerkt mee, er kwam niets terug, en er viel dus ook niets te vergelijken — terwijl `Fold` het antwoord wél had herkend als het er was geweest. Dezelfde soort fout als bij de artiestnamen in #49, maar dan een laag eerder. Voorstel: normaliseer de apostrofsoorten vóór het zoeken. Voorzichtig doen: helemaal vouwen haalt ook de diacrieten weg, en MusicBrainz kent de band Live juist als "Lïve" — dus waarschijnlijk alleen de apostrofs in de query, en `Fold` laten waar hij staat voor het vergelijken. Te meten over een steekproef artiesten die nu geen id hebben. ## 2. `WithoutBrackets` laat een achterblijvend streepje staan ```csharp private static string WithoutBrackets(string title) { return Whitespace.Replace(Bracketed.Replace(title, " "), " ").Trim(); } ``` `Heart Of Stone - (Original Single Mono Version)` wordt daarmee `Heart Of Stone -`, en dáár kent MusicBrainz niets van. De tweede poging komt dus tot vlak bij het antwoord en struikelt over één teken. Zodra het streepje weg was, was het `The Rolling Stones, Now!`. ## 3. Een editaanduiding achter een streepje heeft helemaal geen tweede poging `Blinded by the Light - Single Edit` heeft geen haakjes, dus `WithoutBrackets` verandert er niets aan en er komt geen tweede poging. Zonder dat staartje was het meteen The Roaring Silence. Voorstel: een derde poging die een ` - <staartje>` van de titel afhaalt, ná de volledige titel en ná de versie zonder haakjes. Dezelfde afweging als bij die twee en bij het splitsen van artiestnamen in #49: alleen een zoektocht die al niets opleverde betaalt de extra seconde, dus de kosten vallen op tracks die anders Onbekend waren geworden. Let op titels waar het streepje bij de naam hoort — daarom als laatste en niet als eerste. ## Waarom het de moeite waard is Het raakt niet de zestien die nu nog in de overloop staan (die zijn met de hand af te doen), maar elk nieuw bestand met "- Radio Edit", "- Remastered" of een kapotte apostrof in de tag. Die komen er steeds bij.
roelof added reference musicbrainz-query-opschonen 2026-08-05 17:35:46 +02:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
KavalirOS/RockHeaven#54
No description provided.