snapcast/server/streamreader
2017-12-05 07:45:21 +01:00
..
airplayStream.cpp Cleaned up compile of airplay, use 'make HAS_EXPAT=1' to 2017-12-05 07:38:43 +01:00
airplayStream.h Added metadata support for Shairplay-sync/Airplay interface 2017-12-01 20:29:38 +01:00
fileStream.cpp switch to AixLog 2017-09-16 16:53:37 +02:00
fileStream.h 2017 2017-02-04 11:56:40 +01:00
librespot-meta.patch Modified metadata interface to be tag independent, added JSON api. 2017-11-30 11:07:23 +01:00
pcmStream.cpp Added metadata support for Shairplay-sync/Airplay interface 2017-12-01 20:29:38 +01:00
pcmStream.h Added metadata support for Shairplay-sync/Airplay interface 2017-12-01 20:29:38 +01:00
pipeStream.cpp use less raw pointers 2017-11-05 13:24:26 +01:00
pipeStream.h 2017 2017-02-04 11:56:40 +01:00
process.hpp Update process.hpp 2017-08-04 14:10:12 +02:00
processStream.cpp fix dry out time 2017-10-16 22:07:26 +02:00
processStream.h 2017 2017-02-04 11:56:40 +01:00
README.meta Minor update of Spotify metadata description 2017-12-05 07:45:21 +01:00
spotifyStream.cpp Modified metadata interface to be tag independent, added JSON api. 2017-11-30 11:07:23 +01:00
spotifyStream.h Add cache parameter to Librespot integration 2017-10-21 18:23:01 +02:00
streamManager.cpp switch to AixLog 2017-09-16 16:53:37 +02:00
streamManager.h Force unique stream name, use name as id 2016-11-09 10:25:26 +01:00
streamUri.cpp x-out spotify username and password 2017-10-07 10:33:10 +02:00
streamUri.h x-out spotify username and password 2017-10-07 10:33:10 +02:00
watchdog.cpp 2017 2017-02-04 11:56:40 +01:00
watchdog.h 2017 2017-02-04 11:56:40 +01:00

Metadata tags
=============
The metatag interface will propegate anything to the client, ie no restrictions on the tags.
But, to avoid total confusion in the tag display app (like Kodi), we need some groundrules.

My suggestion is to stick with the Vorbis standard as described in:

	http://www.xiph.org/vorbis/doc/v-comment.html
	https://wiki.xiph.org/Field_names

In addition we should accept unique identifiers of the stream such as Spotify track ID or 
MusicBrainz id which can be used to lookup additional information online.

Example:
	ARTIST: Pink Floyd
	ALBUM: Dark Side of the Moon
	TITLE: Money
	METADATA_BLOCK_PICTURE: base64 (https://xiph.org/flac/format.html#metadata_block_picture) 


Parsing tags from streams
=========================
I've implemented parsing tags from Librespot, but, as Librespot doesn't export anything more than
track title I added a patch 'librespot-meta.patch' to apply to get artist/title.

TBH, the meta tag output from players are a mess, neither Librespot nor Shairport-sync associate
metadata with their audio interfaces, ie they don't even export metadata when the audio interface
supports it, at least Shairport-sync exports a ritch set of data. 

So, to get artist/album apply the patch to librespot and recompile, otherwise you will only get the 
track title.

Or, you can build librespot from https://github.com/frafall/librespot.git