All artists really is all, so even if the user has albumartistonly flag set and never sees those artists that do not have albums, the scraper will have attempted to get metadata for them - what a waste of time, and a lot of unnecessary online queries. It dawned on me that scraper resources are finite, and Kodi demanding info for artists would be best to focus on the artists users want info for the most.Ĭurrently the user can either manually scrape one artist at a time, manually query information for all artists, or automatically query all (new) artists when the library is updated.
They all had mbid and were in TADB, but any scraping session would result in lots of 503 errors and just a random 3 artists being found. There has been previous discussion over better targeting, selecting the appropriate online database for the kind of music etc., but this is more fundamental.ĭoing some testing with music library containing a single album I noticed that scraping artist info was only returning 3 out of 10 artists. The only question is what name is used for "unknown" initially?įor more efficient artist scraping I think we need to be more selective over which artists we search the online databases for. is what appears in the artist node and becomes your unknown artist label. If you tag a music file with the "" musicbrainzartistid and an artist/TPE1 tag of "onbekend" or "? " and that is the last scanned with that mbid then "onbekend" etc. The internationalisation of "unknown" artist then becomes that same as that for all artist names. This uniqueness can be provided internally by using musicbrainzid. Unlike "various artists" where, because the entry is only based on name, you can end up with multiple artist entries in different languages, depending on your language settings when you scanned, I propose that we ensure there is only ever one "unknown" artist entry. This is particularly important if the artist name has been included in the song title (a historic practice). This also means that when the song is listed or played you do not see an unwanted "unknown" in the place of artist name but blank as currently. That a song did not have an artist tag is recorded in the database by the song.strArtists field being empty. It makes sense to me that Kodi treats both those untagged songs and those tagged as "unknown" in the same way internally.
It also happens that Musicbrainz has an "" musicbrainzartistid entry, so some user libraries could already have an "unknown" artist if their music files were tagged with that. In testing I have learned that this needs temp indices on the tables or it is unbelievably slow.
KODI UNABLE TO CREATE GUI ERROR VISTA UPDATE
On music database update from older versions existing songs without artists will need to be updated (adding song_arist entries). This would mean that we can use more efficient inner joins in queries, but also that the "unknown" artist would appear in the artist node and reveal those previously lost songs to the user. Only the songs node, listing all the songs, would show them.įrom a data view point in makes a lot of sense for Kodi to collect all songs without an artist tag under a single "unknown" artist. They do not get listed in a Genre -> Artist -> Album -> song approach. One work around is to replace all the views in left joins with the explicit fields and tables, but it is not as eay to maintain or read.Ģ) Songs without artists are hidden in the UI. Unfortunately there is a weakness in the SQLite optimiser that means that left joins onto views are not optimised and run horribly slowly. This brings at least 2 issues:ġ) All queries wanting song or album and their artist(s) have to be left joins. Many users will not have this at all, but older and larger libraries do tend to have at least a few like it. The idea came up in the discussion of PR9081Īt the moment if you scan a music file without an ARTIST/TPE1 tag into the library then a record is created in the song table but not a song_artist entry. I'm looking at changes to the music library to ensure that all songs, and albums, have at least one artist.