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

Reply via email to