Following up this thread here regarding a unified online music frontend I want to suggest that we expand XBMCs music functionality with online services integrated into the music part of XBMC.
Clearly I'm primary talking about spotify which is expanding to the US very soon.
promontis suggested here that the user probably don't care where the music comes from, the user just wants to find the music he wants and play it.
And I agree, we should expand the functionality that already is in XBMC to also include music from online music addons.
Using spotify as an example this is how it could work:
- Artists → artists from the local db & artists that has “stared” tracks in spotify
- Albums → local albums & stared albums from spotify
- Tracks → local tracks & stared spotify tracks
- Top 100 → submenus with local top 100 tracks, albums & spotify top 100 tracks albums etc.
- Playlists → local playlists & spotify playlists that are converted to local playlists, they act as they where local and support adding and removing of tracks and so on
- Search → returns local artists and songs, albums & spotify search results
The tracks, albums and playlists from a plugin could be distinguished with a prefix to there names, a small overlay on the cover art or a small icon somewhere maybe.
The way this could be done is to allow compiled shared libraries as addons just like the pvr-clients. The addon should implement functions like search(str), get Albums(), getTop100() and so on.
Further the addon should be allowed to include a custom paplayer codec and custom menu entries for its items. Spotify will need “star” and “unstar” for example.
Even further some services might add additional functionality not easily integrated in the current menu structure, spotify has a very useful “radio” for example. So allowing an addon to add a special menu entry in the music section could be a nice solution.
So what do you guys think?
promontis stated that he is interested in coding this and I want to help out and also create a new spotify addon parallel to go with it.