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
- Requirements
- Authentication
- Required Query Parameters
- URL Encoding Metadata
- How Metadata Is Applied
- Potential error messages and Troubleshooting
- Best Practices
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-8The 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-8Where {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 name | Definition | Example |
| mount | The mount point you want to update metadata for. | /demostation.mp3 |
| mode | Defines the action to perform. For metadata updates, this must be updinfo | updinfo |
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-8 | utf-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%20RhapsodyFailure 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