Before I do that, can you shed any light on the question about some
streams that seem to manage to provide metadata to LMS, e.g. appearing a
Squeezeplay UI, yet only basic info (name) appears in the track and
related objects as far as I can tell. Where does it hide and how to
retrieve ?  Are there other objects I can access (I found it quite
daunting going through all the code and dumping object data to get this
far!).

The secret is in the protocol handler's getMetadataFor() method. Every online service implements its own "protocol" (mostly based on the http protocol), and there are some default ones for http etc. These implement getMetadataFor() which accepts a URL, and should return, well, metadata for that URL.

If what you're playing was a remote stream, you can give that a try. See eg. the implementation for the "status" query:

https://github.com/Logitech/slimserver/blob/public/8.0/Slim/Control/Queries.pm#L4952

- check whether it's remote ($track->remote)
- if so, get the protocol handler: my $handler = Slim::Player::ProtocolHandlers->handlerForURL($url);
- see whether it can get you metadata: $handler->can('getMetadataFor')
- get the data
- do stuff with it, eg. replacing the empty album info with the stream name

Good luck!
--

Michael
_______________________________________________
Squeezecenter mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/squeezecenter

Reply via email to