erland wrote: > The issue with Spotify is that I don't think it expose a http url, it > just expose a spotify identity and the player have to understand that > and use Spotify API on the player side to get the audio data. Is > something like that possible through UPnP or does UPnP require that the > server provides a http url to the player for the player to be able to > play the music ? > > Theoretically it might work with Triode's plugin as I think it expose a > http URL, but in practice it doesn't work because I think Triode had to > disallow streaming to non Squeezebox hardware because of Spotify > licensning restrictions to ensure it's not possible to rip the streams.
Just for info, I signed up to Spotify, and have been trying it out with Whitebear using Triode's plug-in. And I can give the following feedback: _*1)_Browsing_the_ContentDirectory*_ There is no fundamental problem to map the Spotify (Triode) browse tree into the UPnP ContentDirectory browse tree. The UPnP ContentDirectory comprises two types of elements, namely "containers" (e.g. albums, or playlists) and "items" (e.g. tracks), and the Spotify (Triode) plug-in follows this paradigm nicely. (On the other hand, the Logitech plugin would be more difficult to map since it comprises entitities which may be both containers and items at the same time). One thing that does not map from the Spotify (Triode) browse tree into the UPnP ContentDirectory browse tree, is the tree called "Search". The UPnP ContentDirectory supports two distinct actions called Browse and Search; whereas the Spotify (Triode) plugin merges these into a common browse tree. This means that the Spotify Search branch of the browse tree delivers nothing useful. A fully featured Control Point would have to split these two functions and route them accordingly. _*2)_Playing_tracks_on_UPnP_players_via_\"Play_To\"*_ When the ContentDirectory (Media Server) and the player (Media Renderer) are hooked to the same LMS server, then there is no fundamental problem for the "Play To" function from the LMS server to a Squeeze player. The material flow looks a bit like this this *Browse Command Dialog : * Spotify <=> Triode <=> LMS <=> Whitebear (ContentDirectory) <=> Control Point (Browser) ... *Play To Command Dialog : * Control Point (PlayTo) <=> Whitebear (Renderer) <=> Triode (<=> Spotify) <=> LMS <=> Squeeze player *Binary Data Stream Flow : * Spotify => Triode => LMS => Squeeze player The reason why this can work is that the Spotify/Triode/LMS instance used for browsing is the same as the Spotify/Triode/LMS instance used for playing, and both parties share the same access and authentication with Spotify. So far so good... On the other hand, it will be much more difficult (if not impossible) to do Play To a third party player as follows, because the 3rd Party UPnP Player lacks the Spotify access and authentication: *Browse Command Dialog : * Spotify <=> Triode <=> LMS <=> Whitebear (ContentDirectory) <=> Control Point (Browse) ... *Play To Command Dialog : * Control Point (PlayTo) <=> 3rd Party UPnP Player *Binary Data Stream Flow : * ??? And indeed the only way I can think of making it work would be to interpose Whitebear as a proxy stream server as follows. (But it is possible that Spotify might not permit that...) *Browse Command Dialog : * Spotify <=> Triode <=> LMS <=> Whitebear (ContentDirectory) <=> Control Point (Browse) ... *Play To Command Dialog : * Control Point (PlayTo) <=> 3rd Party UPnP Player *Binary Data Stream Flow : * Spotify => Triode => LMS => Whitebear (Proxy Server) => 3rd Party UPnP Player ------------------------------------------------------------------------ AndrewFG's Profile: http://forums.slimdevices.com/member.php?userid=15838 View this thread: http://forums.slimdevices.com/showthread.php?t=95603 _______________________________________________ discuss mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/discuss
