One of internet radio's quiet advantages over FM is that the stream can tell you what is playing. The artist and title that appear in a player - and that make features like song bookmarking possible - travel through a set of protocols dating back to the earliest days of online broadcasting. Understanding how this metadata works also explains its familiar failures: stations that show nothing, titles that lag the music, and players that display the station name where a song should be.
The dominant mechanism is the ICY protocol, introduced with Nullsoft's SHOUTcast server in the late 1990s and adopted by the open-source Icecast project that remains the backbone of independent streaming today. ICY is a set of extensions layered over HTTP. When a stream begins, the server sends descriptive headers - icy-name for the station name, icy-genre, icy-br for bitrate - and, if the client requested it, agrees to interleave song metadata directly into the audio itself.
The interleaving mechanism is elegant and slightly brutal. A client that sends the request header Icy-MetaData: 1 receives a response header icy-metaint announcing an interval, commonly 8,192 or 16,000 bytes. After every interval of audio bytes, the server inserts a metadata block: one length byte, followed by text of the form StreamTitle='Artist - Title';. The player must count bytes, extract these blocks, and splice the audio back together before feeding its decoder. A decoder handed the raw interleaved stream will choke on the text bytes - which is exactly why general-purpose audio players that do not speak ICY either ignore metadata entirely or fail on streams that force it. Web players typically avoid the problem by fetching metadata out-of-band: a separate, short-lived request reads the current StreamTitle while the main audio connection stays clean.
When no title appears at all, the cause is almost always at the station rather than the listener. The song titles in an ICY stream originate in the broadcaster's playout automation system, which must be configured to push track changes to the streaming encoder; many stations, particularly small ones and speech broadcasters, never wire this up, so every metadata block simply repeats the station slogan. Other stations deliberately suppress titles for licensing caution, and ad-insertion systems sometimes overwrite song metadata with campaign text during breaks. Latency adds a final wrinkle: because players buffer several seconds of audio, a title pushed at the encoder can arrive visibly earlier than the song it announces, or linger after the song ends.
Modern streaming formats moved metadata out of the byte-splicing business. HTTP Live Streaming (HLS), used by larger broadcasters, carries programme information as ID3 timed-metadata frames inside the media segments, with precise timestamps that eliminate the drift problem. Many stations also publish JSON now-playing APIs alongside their streams, which is how sophisticated players enrich a bare title with artwork, album data, and links to streaming catalogs. These out-of-band sources are increasingly the primary path, with ICY retained for universal compatibility.
The final frontier is naming songs the stream never labels. Acoustic fingerprinting - the technique behind recognition services, described in Avery Wang's landmark paper on the Shazam algorithm - reduces audio to a constellation of spectral peak pairs that can be matched against a database in seconds, identifying a track from a short excerpt regardless of noise. Radio players integrate the same approach to identify music on metadata-silent stations, turning an anonymous broadcast into a bookmarkable, searchable listening history. Between ICY, timed metadata, station APIs, and fingerprinting, the direction is clear: the era of hearing a great song on the radio and never learning its name is ending.
References:
Xiph.Org Foundation. Icecast 2 Server and Protocol Documentation. xiph.org.
Wang, A. (2003). An industrial-strength audio search algorithm. Proceedings of the 4th International Conference on Music Information Retrieval (ISMIR), 7-13.
Pantos, R., & May, W. (2017). HTTP Live Streaming (RFC 8216). Internet Engineering Task Force.