Kodi Community Forum

Full Version: Music XML Nodes
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm a big fan of Kodi, only one thing I really really really want Smile is the following, maybe it's possible I don't really understand the coding of Kodi, but i thought lets give this a shot on the forum.

First a small intro, I use Kodi for listening to all my loose tracks, and alle these single tracks are house, mostly the Techno genre (i DJ sometimes so makes sense now eej Wink).
My default artists playlists looks like this (i guess most Kodi users got this playlist when dealing with their music library)

[ARTISTS]
  • [ARTIST 01A]
    • [ALBUM 01]
      • [TRACK01]
      • [TRACK02]
    • [ALBUM 02]
      • [TRACK03]
    • [ALBUM 03]
      • [TRACK04]
      • [TRACK05]
    • [ALBUM 04]
      • [TRACK06]
    • [SINGLES]
      • [TRACK07]
      • [TRACK08]
      • [TRACK02 (remixed edition)]
    • [*ALL ALBUMS]
  • [ARTIST 02B]
    • [ALBUM 01]
    • [ALBUM 02]
    • [ALBUM 03]
    • [ALBUM 04]
    • [SINGLES]
    • [*ALL ALBUMS]



I cannot locate the option, for showing all the songs/tracks of an artist, instead i always have to go through all the albums instead...
When I click (navigate to) Artist 01A for example, i do not want to see all the folders and enter them one by one, to search for a specific track, directly under the Artist 01A i want all his or her tracks.


This is the ideal feature for me... I know it's possible, it's the same result, as when i click on 'All Albums' but i want to eliminate this step, i want to see all tracks instantly after choosing my favorite artist..

[ARTISTS]
  • [ARTIST 01A]
    • [TRACK01]
    • [TRACK02]
    • [TRACK03]
    • [TRACK04]
    • [TRACK05]
    • [TRACK06]
    • [TRACK07]
    • [TRACK08]
    • [TRACK02 (remixed edition)]

ALSO A BIG THANKS FOR FINALLY ADDING THE REMIXER TAG IN THE LIBRARY TAGS OPTIONS, SUPERB, GREAT OPTION FOR GUYS LIKE ME... THANKS!!!
Can anyone help me with this please?
Yes it should be possible with custom music node, see http://kodi.wiki/view/Audio_nodes#Manual...ustom_node

Best way in my opinion is to try getting what you want using a SmartPlaylist, see http://kodi.wiki/view/smart_playlists, then look at the xml for that playlist then convert it into a music node xml.

Alternatively you can try the Library Node Editor, see http://kodi.wiki/view/Add-on:Library_Node_Editor , to generate the new node via the gui.
Going to move this to support for more visibility.
Hi thnx for your swift answer, OK so i've tried to create a custom node, I installed the library node editor, to make this easier...

In my simple mind, the solution is as follows:
Select songs where artist 01 is artist or remixer and list them all in 1 list, album info is not that important to me, it's only a quick reference for checking if i own a track already.. album info (like album artist & album name are allowed to be available, but its not the main goal.

I cannot seem to get this figured out, every playlist i create, gets either Artists (only choice after that is albumview), then Songs (thats all songs in one list, thats kinda what i want, but instead of all i want the tracks PER artists & remixers) Then theres Albums left, and agreed a very nice view if you got the more popular artists at hand (the kind you hear at the radio) but i have to check all those tracks manually via my account at Beatport (not possible to scrape via MusicBrainz most of the time... most tracks are not known) what I'm saying with this is, i buy tracks seperately, not as album, and thats why we really really really want this in Kodi... so we can keep using Kodi for our lazy evenings... judging tracks, coachpotato style Smile

I turned on the log and found this exact action below, which Kodi executes when i press the -*ALL ALBUMS- option in my library, I have no idea how to turn this SQL query in an working playlist... i know that the numbers 40 represent the artist and it looks like 291 is the album...

Code:
17:51:22.174 T:14968   DEBUG: CDirectoryProvider[musicdb://artists/40/291/?albumartistsonly=false&artistid=40&xsp=%7b%22group%22%3a%7b%22mixed%22%3afalse%2c%22type%22%3a%22none%22%7d%2c%22type%22%3a%22artists%22%7d]: refreshing..
17:51:22.174 T:6200   DEBUG: Thread JobWorker start, auto delete: true
17:51:22.191 T:6200   DEBUG: CMusicDatabase::GetSongsFullByWhere query = SELECT songview.*, songartistview.* FROM songview JOIN songartistview ON songartistview.idsong = songview.idsong  WHERE (songview.idAlbum = 291) AND ((EXISTS (SELECT 1 FROM song_artist WHERE song_artist.idSong = songview.idSong AND song_artist.idArtist = 40  AND song_artist.idRole = 1 ) OR EXISTS (SELECT 1 FROM album_artist WHERE album_artist.idAlbum = songview.idAlbum AND album_artist.idArtist = 40))) ORDER BY songartistview.idsong, songartistview.idRole, songartistview.iOrder
17:51:22.194 T:6200   DEBUG: CMusicDatabase::GetSongsFullByWhere() - took 5 ms
17:51:27.211 T:14968   DEBUG: CDirectoryProvider[musicdb://artists/40/-1/?albumartistsonly=false&artistid=40&xsp=%7b%22group%22%3a%7b%22mixed%22%3afalse%2c%22type%22%3a%22none%22%7d%2c%22type%22%3a%22artists%22%7d]: refreshing..
17:51:27.227 T:6200   DEBUG: CMusicDatabase::GetSongsFullByWhere query = SELECT songview.*, songartistview.* FROM songview JOIN songartistview ON songartistview.idsong = songview.idsong  WHERE (EXISTS (SELECT 1 FROM song_artist WHERE song_artist.idSong = songview.idSong AND song_artist.idArtist = 40  AND song_artist.idRole = 1 ) OR EXISTS (SELECT 1 FROM album_artist WHERE album_artist.idAlbum = songview.idAlbum AND album_artist.idArtist = 40)) ORDER BY songartistview.idsong, songartistview.idRole, songartistview.iOrder
17:51:27.249 T:6200   DEBUG: CMusicDatabase::GetSongsFullByWhere() - took 32 ms


Edited to fix wide format
Yes it seems I didn't fully think it through earlier, now I'm not so sure if it will be possible. If it is then you maybe on the right track looking at the SQL query as you can use those to build nodes, but I'm not too sure how.

Daveblake is our resident Music code expert, so hopefully he'll spot this and reply as he'll immediately know what's possible.
You want navigation to default to genre > artists > songs, skipping albums level. Unfortunately AFAIK there is no option to do that. With the default skin at least, I don't know if some other skins may offer this.

Getting the songs for an artist:

One alternative is to use songs node (which, for known reasons that requires major design change to fix, will be horribly slow if you have a large number of songs). Then use filter option from the side blade to pick the artist.

Or you could create a separate songs smartplaylist for every artist.... but this is too static to be useful.

As you have seen the virtual file path for "*all albums" for an artist is like
musicdb://artists/365/-1/?albumartistsonly=false
where 365 is an artist id, and showing songs where they feature but may not be the album artist e.g. compilations, or duets etc.

Could create folder type custom nodes using this but again it means a static node for every artist. Maybe someone with scripting skills could create a work around for you

It is possible that there is a skin that already offers this, ask in the skins forum about this kind of navigation. Otherwise it is an option that I will consider adding for v18

BTW glad to hear you find remixer useful Smile