When a listener tunes into your internet radio station on TuneIn, a smart speaker, or a radio app and sees "Now Playing: Artist Name – Track Title," that information arrived through a metadata system working alongside the audio stream. Stream metadata is one of those technical details that listeners never think about when it works—and notice immediately when it doesn't. A stream showing "Unknown Artist" or a station name that never updates looks unfinished. Understanding how stream metadata works and how to configure it correctly in BroadcastMySelf is a straightforward way to make your station feel polished and professional.
What Is Stream Metadata?
Stream metadata is textual information embedded in or transmitted alongside an audio stream that describes what is currently playing. For internet radio, the most important metadata fields are:
- StreamTitle: The "now playing" field—usually formatted as "Artist – Track Title" for music stations or "Show Name: Episode Title" for talk radio. This is what appears on radio apps, smart speakers, and in-car displays.
- StreamName: The name of the station (e.g., "Deep House Radio" or "WKXR Community FM"). Set once when configuring the mount point on your Icecast server.
- StreamDescription: A short text description of the station's format and audience. Displayed in stream directories.
- StreamGenre: The genre category for your station (e.g., "Electronic," "Talk," "Jazz"). Used by stream directories for categorization.
- StreamURL: Your station's website URL, displayed in some radio apps as a clickable link from the now-playing screen.
Of these, StreamTitle is the only one that changes during a broadcast—all other fields are static configuration set once on the server. Getting StreamTitle updating correctly in real time, so listeners see the current track name as it changes, is the primary metadata challenge for most internet radio operators.
How ICY Metadata Works
Internet radio stream metadata uses a protocol called ICY metadata, originally developed by SHOUTcast in the late 1990s and now universally supported by all streaming software and radio apps. ICY metadata works differently depending on the streaming protocol:
In ICY/HTTP streaming (used by both Icecast and SHOUTcast), the client (radio app or player) indicates during the initial connection request that it supports metadata by sending an Icy-MetaData: 1 header. In response, the server embeds metadata packets directly in the audio stream at regular intervals, specified by the icy-metaint value in the server response header. These packets appear between audio data at fixed byte intervals—typically every 8,192 or 16,384 bytes—and contain the current StreamTitle value. When the player receives a new metadata packet, it extracts the StreamTitle and updates the now-playing display.
This "in-band" metadata approach means metadata updates are tied to the stream's data flow—metadata changes only become visible to listeners when the new metadata packet arrives as the stream progresses through the byte interval. In practice, this means metadata updates can appear up to a few seconds after a track change, depending on bitrate and the metaint value.
In HLS (HTTP Live Streaming), metadata is handled differently through timed metadata in the MPEG-TS container or through EXTINF tags in the playlist file. BroadcastMySelf uses standard Icecast/SHOUTcast streaming rather than HLS, so ICY metadata is the relevant standard.
Configuring Metadata in BroadcastMySelf
BroadcastMySelf handles metadata automatically based on what you are broadcasting and how you have configured the app.
Automatic metadata from the music player: When you use BroadcastMySelf's built-in music player to play tracks from your device's music library, the app automatically reads the ID3 tags (or equivalent metadata tags) from each audio file—artist name, track title, album—and sends this as the StreamTitle to your Icecast server in real time as each track starts. For stations that broadcast from a local music library through the BroadcastMySelf player, metadata updates are completely automatic.
Manual metadata for live broadcasting: When you are live-mixing from an external source (a DJ controller, microphone only, or an external media player), BroadcastMySelf cannot automatically detect what is playing. In this case, you can manually update the StreamTitle field in the app's interface. Some DJs update this at each track transition; others set a static title like "Live Mix by [DJ Name]" for the duration of a live set. The choice depends on how important real-time track information is to your audience—many DJ stations maintain listener engagement just fine with a static "Live" title and a separate track listing posted to social media.
ID3 tags in your music files: The quality of automatic metadata updates depends entirely on how well your music files are tagged. Files with missing or incorrect artist/title tags will display incomplete or wrong metadata. Before adding music to your BroadcastMySelf playlist, verify that your files are properly tagged. Free tools like MusicBrainz Picard (desktop) can automatically look up and add correct tags to large music libraries based on audio fingerprinting.
Configuring Static Metadata on Your Icecast Server
The station-level metadata fields (StreamName, StreamDescription, StreamGenre, StreamURL) are configured in your Icecast server's icecast.xml configuration file. In the mount point section:
<mount-name>/stream</mount-name>
<stream-name>Your Station Name</stream-name>
<stream-description>Your station description here</stream-description>
<stream-genre>Electronic</stream-genre>
<stream-url>https://yourdomain.com</stream-url>
</mount>
These values are served to clients in the response headers when they connect to your stream. Directories like TuneIn and radio apps read these values to populate station listing pages. Set them accurately—an incorrect genre, for example, can result in your station appearing in the wrong category on stream directories, reducing discoverability.
Metadata and Stream Directories
Stream directories—TuneIn, internet-radio.com, Shoutcast.com, Radio.net—index publicly accessible streams and make them discoverable to listeners. These directories read your stream's metadata to populate their listings. The metadata they use for listings comes from two sources: the static server configuration (station name, description, genre) which they read once when indexing your stream, and the real-time StreamTitle which some directories display on their "now playing" pages.
Submitting your station to stream directories typically requires:
- A publicly accessible stream URL (your Icecast server must be reachable on a public IP address or domain)
- Accurate StreamName and StreamDescription in your server configuration
- A consistent genre designation (use the directory's genre taxonomy where possible)
- A station website URL (StreamURL) that provides additional context
After submission, directories typically verify the stream is accessible and index it within a few days. Once indexed, your stream appears in search results for listeners browsing by genre, language, or keyword. The StreamTitle from your live broadcast is often displayed on your directory listing page in real time, making accurate metadata updates valuable for discovery as well as listener experience.
Metadata for Smart Speakers and Car Displays
Two increasingly important metadata consumers are smart speakers (Amazon Echo, Google Home) and internet radio in cars (connected via Android Auto, Apple CarPlay, or integrated infotainment systems). Both display your StreamTitle prominently during playback.
Smart speaker displays show the station name and now-playing metadata on device screens. Listeners asking Alexa or Google Assistant to play your station by name will see the metadata on the Echo Show or Google Nest Hub display. Car displays similarly show now-playing information on the dashboard screen. In both contexts, clear, correctly formatted metadata ("Artist – Track Title" or "Show Name: Segment Title") significantly improves the listener experience compared to a station showing "Unknown" or a raw file path.
One practical consideration: some smart speaker platforms impose character limits on metadata display (typically 32–64 characters for StreamTitle). Long artist or track names may be truncated. There is nothing you can do about this in the metadata itself, but it is useful to know that very long metadata strings may not display fully on all devices.
Troubleshooting Common Metadata Problems
Several common metadata issues and their solutions:
- Metadata not updating / shows "Unknown": Verify your music files have correct ID3 tags. If broadcasting from the music player, check that BroadcastMySelf has permission to read your media files. If connected to a third-party streaming source, confirm the source is sending metadata with the stream.
- Metadata updates are delayed: The ICY metadata packet interval determines update frequency. A larger metaint value means less frequent updates. This is a server-side configuration; most Icecast servers use a sensible default. Very low bitrate streams will show longer delays due to the time required to reach each metadata interval in terms of bytes transmitted.
- Encoding/character issues (garbled characters): ICY metadata historically used Latin-1 (ISO 8859-1) encoding, which does not support non-Latin characters. Icecast 2.4+ supports UTF-8 metadata when clients indicate UTF-8 support. If your station broadcasts in a non-Latin script (Arabic, Chinese, Cyrillic) and metadata shows garbled characters, ensure your Icecast version is 2.4 or newer and that your broadcasting app sends UTF-8 encoded metadata.
- Station name not appearing correctly in directories: Stream directories cache station metadata. If you update your StreamName in icecast.xml after initial indexing, directories may show the old name for days or weeks. Logging into the directory's station management portal and manually updating the listing is faster than waiting for a cache refresh.
Conclusion
Stream metadata is a background system that works transparently when configured correctly and creates frustrating gaps when neglected. Getting your metadata right—properly tagged music files, accurate server configuration, manual updates during live mixing—costs nothing beyond a modest investment of setup time. The payoff is a station that feels complete and professional to every listener on every platform, from the web browser to the smart speaker to the car dashboard. It is one of the details that separates a station that sounds like a hobby from one that sounds like a real radio station.