Difference between revisions of "How to send metadata to a shoutcast server"

Line 3: Line 3:




Well - this very much depends on how you operate your shoutcast server !
To send metadata to the Instreamer for inclusion with the stream, please use the E= command. After the "E=" parameter, you will need to supply standard shoutcast metadata format. Here is an example to post the Stream Title - note the command is case sensitive and must be correctly terminated (;) and quoted (single quotes).


1) If the Instreamer is connected as "shoutcast source" (Shoutcast : <IP address of the SC server> : port number) - the Barix Instreamer actively connects to and sends the live audio feed to the server, then there is NO WAY the Instreamer can send that information with the audio ! The Shoutcast source protocol uses a "raw" TCP connection (after authentication) to send the MP3 frames, there is no way the Instreamer could insert that information. If you use that mode, you must directly post the metadata information via HTTP to the Shoutcast/Icecast server (check the server documentation).  
http://<ip-instreamer>/rc.cgi?E=StreamTitle='Title';


Of course, the metadata cannot be sent through the analog or S/PDIF audio ports .. it needs to be provided to the Instreamer via the command interface, using raw TCP, UDP, serial port or the cgi interface.


2) If the Instreamer is used as Shoutcast relay and your shoutcast server is configured as a "relay", then - and only then - you can feed metadata from the Instreamer through the shoutcast server to the clients/listeners.


Of course, that metadata cannot be sent through the analog or S/PDIF audio ports .. it needs to be provided to the Instreamer via the command interface, using raw TCP, UDP, serial port or the cgi interface.
The Instreamer can insert Metadata in two modes:


To send metadata to the Instreamer for inclusion with the stream, please use the E= command. After the "E" parameter, you will need to supply standard shoutcast metadata format (documented somewhere else). Here is an example to post the Stream Title - note the command is case sensitive and must be correctly terminated (;) and quoted (single quotes).
1) The Metadata feature can be also used when the Instreamer is acting directly as streaming server (configured as "Internet Radio : 0.0.0.0 : port number"). In this case no other Streaming server is involved, the clients/listeners will request/get the stream directly from the Instreamer.  


'''http://<ip-instreamer>/rc.cgi?E=StreamTitle='Title';'''


Here is an example how the shoutcast server is configured as a relay - of course, this is just an incomplete snippet of the configuration file:
2) When the Instreamer is used for Shoutcast server (Shoutcast : 0.0.0.0 : port number) and your Shoutcast or Icecast server is configured as "relaying" server, then - and only then - you can feed metadata from the Instreamer through the shoutcast/Icecast relay server to the clients/listeners. Here is an example how the Shoutcast or Icecast server must be configured as relaying server - of course, this is just an incomplete snippets of the configuration files:  


'''Shoutcast config:'''


RelayPort=8000
Shoutcast config:


RelayServer=192.168.10.175 (the Instreamer IP address)
'''RelayPort=8000'''


'''RelayServer=192.168.10.175''' (the Instreamer IP address)


On the Instreamer configure under "Streaming / Stream to "    '''Shoutcast : 0.0.0.0  : 8000'''


The Shoutcast server will pick up the stream from this socket.


Icecast config:


'''<relay>'''


3) The Metadata feature can be also used when the Instreamer is acting directly as streaming server (configured as "Internet Radio"). In this case no other Streaming server is involved, the clients/listeners will request/get the stream directly from the Instreamer.
'''<server>192.168.10.175</server>'''    (the Instreamer IP address)
 
'''<port>8000</port>'''
 
'''<mount>/xstream</mount>'''
 
'''<local-mount>/xstream1.mp3</local-mount>'''
 
'''<relay-shoutcast-metadata>1</relay-shoutcast-metadata>'''
 
'''</relay>'''
 
 
On the Instreamer configure for both servers under '''"Streaming / Stream to" = Shoutcast : 0.0.0.0  : 8000'''
 
The Shoutcast/Icecast server will pick up the stream from this socket.
 
 
When the Instreamer is connected as "Shoutcast source" (Shoutcast : <IP address of the SC server> : port number) then Barix Instreamer actively connects to and sends the live audio feed after authenication over a raw TCP connection to the server.
In this mode it´s not possible to add any metadata for the Instreamer, because there is no space in the header for it. Metadata must be inserted on the Shoutcast server directly. The same is valid for Icecast servers.


Back to [[FAQ]]
Back to [[FAQ]]

Revision as of 06:27, 18 May 2012

A common question posted to the Barix support team is, "I am using an Instreamer to feed my shoutcast server, but how can i add metadata, genre, title information ?".


To send metadata to the Instreamer for inclusion with the stream, please use the E= command. After the "E=" parameter, you will need to supply standard shoutcast metadata format. Here is an example to post the Stream Title - note the command is case sensitive and must be correctly terminated (;) and quoted (single quotes).

http://<ip-instreamer>/rc.cgi?E=StreamTitle='Title';

Of course, the metadata cannot be sent through the analog or S/PDIF audio ports .. it needs to be provided to the Instreamer via the command interface, using raw TCP, UDP, serial port or the cgi interface.


The Instreamer can insert Metadata in two modes:

1) The Metadata feature can be also used when the Instreamer is acting directly as streaming server (configured as "Internet Radio : 0.0.0.0 : port number"). In this case no other Streaming server is involved, the clients/listeners will request/get the stream directly from the Instreamer.


2) When the Instreamer is used for Shoutcast server (Shoutcast : 0.0.0.0 : port number) and your Shoutcast or Icecast server is configured as "relaying" server, then - and only then - you can feed metadata from the Instreamer through the shoutcast/Icecast relay server to the clients/listeners. Here is an example how the Shoutcast or Icecast server must be configured as relaying server - of course, this is just an incomplete snippets of the configuration files:


Shoutcast config:

RelayPort=8000

RelayServer=192.168.10.175 (the Instreamer IP address)


Icecast config:

<relay>

<server>192.168.10.175</server> (the Instreamer IP address)

<port>8000</port>

<mount>/xstream</mount>

<local-mount>/xstream1.mp3</local-mount>

<relay-shoutcast-metadata>1</relay-shoutcast-metadata>

</relay>


On the Instreamer configure for both servers under "Streaming / Stream to" = Shoutcast : 0.0.0.0  : 8000

The Shoutcast/Icecast server will pick up the stream from this socket.


When the Instreamer is connected as "Shoutcast source" (Shoutcast : <IP address of the SC server> : port number) then Barix Instreamer actively connects to and sends the live audio feed after authenication over a raw TCP connection to the server. In this mode it´s not possible to add any metadata for the Instreamer, because there is no space in the header for it. Metadata must be inserted on the Shoutcast server directly. The same is valid for Icecast servers.

Back to FAQ