Although streaming media gained popularity over several years, the pandemic cemented our devotion to apps that entertain us with music, movies, TV shows, radio content, podcasts and more — right from our smartphone or TV. As more media and entertainment platforms crowd the market, personalized content that drives customer engagement is vital to gaining a competitive edge.
In another case study, we discussed our general solution for a highly scalable, cost effective, media encoder, and HLS streaming platform. Here, we’d like to expand on a critical aspect of that effort — the desire to build a highly scalable and cost-effective HLS streaming platform capable of delivering personalized content to every listener.
Whether the discussion surrounds platforms, plans, options, bundles or personalization, the most significant consumer trend in streaming media is more.
Our initial delivery goal was to simply record and rebroadcast streams, replacing ad breaks in the original inbound stream with targeted digital ads in the outbound streams. As a major media broadcast company delivering music, podcasts, sports and news content, our client’s strategic goal was to create a platform that would be flexible in how content is delivered and monetized. The simplest case is a subscription replacing ads with premium content.
Developing more advanced use cases — like mixing and matching different source streams at different times, podcasts, short-form shows, songs from libraries and essentially any other kind of media desired into a personalized outbound stream — was our ultimate goal. But we also needed to retain stream monetization with ads, subscriptions and premium content.
The ability to retain stream monetization creates a challenge both in how media is managed and how streams are constructed in scale. A major benefit of HLS, as outlined in our blog post on how HLS works, is the protocol’s ability to scale by sharing resources. When we are rebroadcasting the same content to all users, we can leverage a high degree of caching to minimize load and scale the number of outbound streams we serve efficiently. The requirement that we mix and match completely arbitrary content in a personalized way forced us to carefully evaluate our scale strategy and consider how we index and retrieve content for streaming.
Between exclusive content, original programming and the demand for more, streaming media companies must carve out their niche and deliver on the promise of more to effectively appeal to users — and make more money themselves.
Our first goal in this HLS streaming platform design project was to design an ingest system that could take both stream and static content, such as MP3s, and convert these sources into indexable HLS-ready stream fragments. Since ads are nothing more than static files like a song or podcast, we could leverage the same transcoding for all static media — only the metadata about the media differed.
During the personalized HLS streaming platform development process, we simply ensured our media transcoding services for static content were scalable to accommodate the load of ads and other types of media we may need to insert. Using a traditional job queue model with service scaling through Kubernetes based on queue depth and a priority queue model, our solution ensured that the media we needed quickly for stream insertion would be available by the outbound streams when necessary, with ads being a prime use case.
We then considered the problem of how to index the metadata and media for stream building in a cost-effective and performant manner. Our streaming media team initially considered a database to manage the metadata. But it quickly became apparent that the uniqueness of outbound streams would frustrate efficient caching and apply a heavy load on a database. To solve this concern, we needed a cost-effective and performant media indexing and metadata solution.
Working with our client’s data architect, we devised a way to implement a time series database directly on Amazon S3 to handle time-oriented stream sources and a file-based index for static content. This allowed us to avoid a traditional database as a potential bottleneck and dramatically reduce costs. Coupled with aggressive instance (memory and attached storage) and Redis caching, our unique deliverable resulted in a highly performant solution without substantial cost.
The final HLS streaming platform design challenge was to create an HLS stream builder that could multiplex all of the available content into a single output stream customized to each listener’s unique preferences. Because each stream could depend on the user’s subscription, market and other characteristics, we needed a way to specify alternate content sources according to the individual listener. Our client also needed to schedule content by time of day and other listener characteristics like geolocation to support sporting events and other time-sensitive events and satisfy carriage contracts.
To solve this problem, we created a stream data model that could be used by the content programming team to specify a set of rules and content to deliver if the rules were satisfied. The model allowed for time- and rule-based content selection on the stream, a key feature of which was the ability to pull a content playlist from external services. This approach allowed us to separate programming from stream building and freed our client to manage stream content using various options — from third-party integrations to in-house services — that provide manually curated or algorithmic content to listeners as desired.
Our personalized HLS streaming platform design and development expertise ultimately enabled our client to leverage data from its users to deliver personalized marketing campaigns and recommend content to customers based on past media consumption behavior.
As streaming media and data collection continue climbing, increasing the amount of user behavior data available, calls for personalized content will only grow louder. Engaging with users through personalized content can help keep them hooked and loyal to your application and brand.
Our end design was a highly performant, cost-effective solution that satisfied our client’s near-term product goals and aligned with its desire to rapidly evolve its content offering, ultimately driving growth by bringing people together around the content they love — and helping advertisers connect with those audiences. Cardinal Peak supported all aspects of the project, working side by side with our client’s development and DevOps teams to implement and deploy the end product.
Personalized recommendations are now foundational to any streaming media application’s success, as consumers often rely on these suggestions to discover new songs, artists, the latest news, live performances, podcast releases and essential information about the world around them. If your company needs help driving user engagement via personalized content, let our experts know how we can help!