Audio streaming metadata refers to the textual data sent "alongside" the audio stream that describes what is currently playing. Typically, information like artist name, track title, and sometimes additional fields (album, track number, etc.)
In this article, we are going to cover:
Why metadata matters
- Listener experience / UX: Metadata enables the listener’s client (app, web player, smart speaker) to show the current song ("Now playing"), e.g. "Artist – Title", which improves transparency and engagement.
- Advertising: For midroll insertion, knowing the exact track context helps align ad-insertion timing, log properly, and avoid content mismatch.
- Compliance/licensing/royalties: Accurate metadata is key to reporting what was played, which directly affects licensing, royalty distribution, and auditing. If you plan to use our Insights platform for SoundExchange reporting, maintaining proper metadata is essential.
- Debugging/diagnostics: In deployments, missing or malformed metadata often causes client-side display issues or breaks downstream logic (e.g. skip logic, fallback, logging).
However, metadata is not always needed. For straightforward continuous streams (e.g. pure live talk radio without track-level song breaks), metadata may be optional. But metadata becomes mandatory when midrolls) are involved, to ensure correct timing, tracking, and client synchronization. Maximum metadata delay is 400 milliseconds. Any longer may cause midroll sync issues.
How to pass metadata
1. Format requirements: "%a - %t" or "%Artist - %Title"
- Your encoder or automation system should output metadata in one of the accepted templates:
- %a - %t (common shorthand form)
- %Artist - %Title (explicit form)
2. Character encoding: UTF-8
- The metadata string must be encoded as UTF-8. This ensures correct support for international and special characters (e.g. "Beyoncé", "Sigur Rós")
- Do not use legacy encodings like ISO-8859-1, Windows-1252, or UTF-16
3. Integration approaches (passing metadata)
Metadata must come directly from the customer encoder. Many automation systems or DJ playout software (e.g. Station Playlist, Sam Broadcaster, etc.) support metadata templating. Configure the metadata template to "%a - %t" or "%Artist - %Title". The automation feeds metadata updates (e.g. when a new track begins) directly to the encoder via internal integration (local IPC, socket, HTTP, etc.).
Some systems read a "now playing" file or database and pass updates. Ensure that the metadata file is UTF-8 and that the automation flow triggers updates at each track boundary.
Summary
- Metadata is required when serving midrolls in streaming.
- Proper metadata is necessary and important if you plan to use our Insights platform to generate your SoundExchange reporting.
- Metadata must come directly from the customer encoder (in-band).
- Metadata format must be standard ICY in the form "Artist - Title" (not reversed).
- The maximum allowed metadata delay is 400 ms, to keep audio and ads in sync.
- The template should be "%a - %t" or "%Artist - %Title", depending on encoder settings.
- All metadata must be encoded as UTF-8, ensuring special characters display correctly.
- Accurate, real-time metadata ensures smooth ad insertion, compliance, and a better listener experience.
For additional information about the technical requirements for streaming, we recommend checking the following article as well: • Technical Requirements for Streaming
If you have any further questions or concerns please do not hesitate to contact our Support Team through the ticket submission form or by emailing us at support@soundstack.com.