The proliferation of digital radio platforms worldwide is making more choices and better quality a reality for listeners, as the streaming model continues to evolve. Audiences can access more streams on more platforms today than ever before, and enjoy a richer media experience through metadata-driven enhancements. Rather than watch a straight-line player with a station ID and a timer, online and mobile-device listeners enjoy information from basic song and artist information to purchase links, social media activity and even video.
Online audiences today are far more sophisticated than five years ago. Services like Pandora and Spotify have changed expectations. Naturally, radio broadcasters win when it comes to high-quality audio, leveraging truly professional tools on the production and processing side. However, the player also needs to integrate valuable information around the audio experience, such as programme name, song title, album and artist, alongside album art as a basic visual element. For music stations, things like “Buy Now” links and “Lyric lookup” drive purchasing and further engage listeners. Social media integration is yet another way to interact with stations and other listeners, along with expanded programming and artist information, such as a history of previously played songs or episodes and more performer details.
Adobe Flash Player has long been the leading choice to drive player audio and real-time metadata integration in the broadcast space – and for good reason. Flash reliably supports real-time, in-stream metadata that triggers other player events. For the broadcaster, this is important when it comes to switching ad banners on the player or triggering in-stream ads. Flash can read metadata in the stream and react accordingly.
However, Flash has plenty of shortcomings when it comes to the user experience. First and foremost, Flash is not supported on every platform. For example, iOS does not support it, meaning there are no Flash streams on iPhones or iPads. Flash streams are also not supported on most other mobile devices – a big hole given the millions of Android users in the consumer space. Mobile device manufacturers have put this restriction in place due to the exceptionally high resource usage of Flash.
Security exploits are another downside to Flash, driving software developers and mobile device suppliers to abandon ship. Flash works on a plug-in based architecture that interfaces with the web browser. That plug-in permits a specific set of actions that enables the content to play within the Flash wrapper. The architecture’s side-effects mean bugs and vulnerabilities occasionally have a drastic security impact.
Adobe does an excellent job of patching bugs, but the plug-in architecture requires the consumer to continuously – often manually – update Flash plug-ins. The number of exploits and vulnerabilities in the format has soured much of the software development community.
The struggle is that Flash continues to provide excellent functionality for the broadcaster, but shortchanges the consumer. For the broadcaster, Flash plug-ins can read in-stream metadata in real time from the audio stream. This ensures that the metadata is updated in the player from the same network connection the audio stream uses. This eliminates the need for a duplicate connection for metadata, eliminating latency and synchronisation issues. Changes to artist/title and other data within the stream are instant.
However, if the consumer cannot play the content – or worse, continuously struggles with software updates and security patches – the arguments to retain Flash-based media players quickly thin. This has paved the way for HTML5-based media players, which are proving a desirable alternative to Flash players.
HTML5 is the latest evolution of the standard that defines HTML, and is designed for use by all open web developers. Audio and video elements are easily embedded, and it supports the manipulation of dynamic multimedia content. This open-standards approach lends itself well to software developers and consumers, as it has broad support across all mobile and desktop devices. For consumers, HTML5’s lack of an external plug-in enables native, secure playback of audio streams within any web browser. The flexibility of HTML5 is also a win for the broadcaster, as more listeners can tune in with less struggle.
The fact that HTML5 provides no native support for in-stream metadata is a big challenge, not only for consumer-oriented data (song/artist, social media, etc) but also stream monetisation. To trigger ads and switch banners, the stream needs to have metadata in it, and the player must be able to read the metadata as it changes.
There are a few workarounds for solving the HTML5 in-stream metadata problem, with some more effective than others. Some players attempt to solve the problem through a duplicate connection to the stream. This architecture provides one connection to the stream for decoding the audio, and a separate connection to acquire the metadata.
Metadata scraping is a more efficient approach. This server-side utility establishes a single connection with the live audio stream solely for the purpose of collecting stream metadata. Compared to the player-side duplicate connection strategy, metadata scraping significantly reduces bandwidth usage to minimise network load. The terminology represents the process of ‘scraping’ the metadata out of the stream, establishing one connection that all players use as the source for metadata.
There are two ways client applications can get metadata from the server-side scraping utility: by polling and pushing. Polling is the more prevalent. In this technique, the player is short polling a server-side source, automation system output or Icecast server status page every few seconds to retrieve metadata for display within the player. This technique is easy to implement, and thus widely supported.
Short polling is not without its limitations. Every player issues HTTP GET requests for metadata every few seconds. Frequent requests have the positive effect of improving latency for dynamic, on-time metadata changes, but the process can quickly escalate network traffic and resource usage. In high-volume situations, this approach can crash the web service that powers the embedded player.
The emergence of push-based metadata is a significant leap forward. Like short polling, the scraper utility maintains a persistent connection to the stream and extracts the metadata when it changes. The difference is that metadata is then pushed through an active web socket connection to the player.
Once the player is loaded, a single request is made to the metadata server and a full duplex socket connection is established. As metadata changes occur, they are pushed out in real time from the server to the player through the active connection. This eliminates the process of each player short polling the server and generating frequent, unnecessary traffic for infrequently changing data.
The emergence of push-based metadata directly correlates with the evolution of web sockets. Now supported in every web browser, socket connections ensure users can automatically push and pull data between the server side and the web browser.
This also eliminates the need to poll the server every few seconds. This has a significant monetisation benefit for broadcasters. For example, the persistent connection enables a tightly coordinated, synchronised banner ad display alongside in-stream ad insertion – a much trickier endeavour in a short polling scenario. It has the added benefit of pushing these same metadata changes to third-party platforms such as TuneIn, with the appropriate API integration.
Regardless of the method chosen, metadata management and integration is necessary to evolve the broadcaster’s online business model and to attract, retain and grow radio audiences and advertisers. It is an ideal time to talk to your CDN to learn more about the options and possibilities for delivering a richer, more dynamic streaming experience that will better monetise your efforts.
The column is authored by Andrew Jones, Director of Sales Engineering, and Elijah Atkinson, Technology Developer at StreamGuys.