The streaming software used by SharpStream's ingests supports updating “Now Playing” metadata via an HTTP request to its admin metadata endpoint. 


This method allows external systems (such as playout automation, schedulers, or scripts) to update track information or ad triggers in real time instead of embedding metadata in the audio stream itself.


This guide explains how to construct and send a metadata update request to a SharpStream stream.


TABLE OF CONTENTS


Overview


Metadata updates are sent as HTTP requests to the Icecast admin endpoint:


/admin/metadata.xsl


This endpoint exists on the ingest server you use for your contribution. The format of which is as follows:


http://{ingest_address}:{port_number}/admin/metadata.xsl?mount=/{MOUNT_NAME}&mode=updinfo&song="{METADATA – CONTENT}”&charset=utf-8


The request includes query parameters that identify the mount point and the metadata value to be updated.


The ingest address, port number, mount name and password are the same you use for audio contribution can all be found in your stream information page on portal, See our FAQ here: Where can I find the mount information for encoder contribution?



Requirements


Before sending metadata updates, ensure the following:


  • The audio stream contribution is active (so the mount is reachable)
  • You have valid admin or source credentials (these can be found in your encoder details section on the mount information page in Portal
  • Your client can send authenticated HTTP requests


Authentication


Sending metadata to SharpStream Mounts requires HTTP authentication for admin endpoints.


Authentication can be provided using HTTP Basic Auth, this involves prepending your request with the user and password details for the mount in question


Format:


{user}:{password}


Where {password} is a placeholder for your mount's contribution password


Full format (with endpoint URL):

http://{user}:{password}@{ingest_address}:{port_number}/admin/metadata.xsl?mount=/{MOUNT_NAME}&mode=updinfo&song="{METADATA – CONTENT}”&charset=utf-8


Where {user}, {password}, {ingest_address}, {port_number}, {MOUNT_NAME} and {METADATA – CONTENT} are all placeholder's for your mount contribution fields and desired metadata string respectively.



When using tools such as curl, authentication is supplied as part of the request. 


Format:


curl -u {user}:{password}
"http://{ingest_address}:{port_number}/admin/metadata.xsl?mount=/{MOUNT_NAME}&mode=updinfo&song="{METADATA – CONTENT}”&charset=utf-8"


Where {user}, {password}, {ingest_address}, {port_number}, {MOUNT_NAME} and {METADATA – CONTENT} are all placeholder's for your mount contribution fields and desired metadata string respectively.


Notes:


• The request method is HTTP GET

• Metadata values must be URL-encoded

 • Authentication is mandatory


Required Query Parameters


Parameter nameDefinitionExample
mountThe mount point you want to update metadata for./demostation.mp3
modeDefines the action to perform. For metadata updates, this must be updinfoupdinfo

song

The metadata string to be displayed as “Now Playing”. This field can also be used for sending ad triggers if your stream is monetised.Queen%20-%20Bohemian%20Rhapsody


charset


Specifies the character encoding used for the metadata. This should be utf-8utf-8



URL Encoding Metadata


Special characters (spaces, ampersands, accents, etc.) must be URL-encoded.


Example:


Original metadata:
Queen - Bohemian Rhapsody

URL-encoded value:
 Queen%20-%20Bohemian%20Rhapsody


Failure to URL-encode metadata may result in truncated or rejected updates.



How Metadata Is Applied


Once Metadata is received:

  • Icecast returns code 1 (Metadata update successful)
  • The mount immediately updates with the “Now Playing” value for the specified mount
  • Connected listeners and downstream relays will receive the updated metadata


Potential error messages and Troubleshooting


401 Unauthorized

 Credentials are missing or incorrect.


404 Not Found

 The mount point does not exist or is not active.


Metadata not updating

Check that:

• The correct mount name is used (including leading /)

• The stream is live

 • Metadata is properly URL-encoded


Best Practices


• Send metadata updates only when track or programme information changes

• Avoid excessive update frequency

• Always specify charset=utf-8 to ensure correct character handling

• Keep credentials secure and do not expose them client-side