What to Consider When Building a Streaming App
Audio and video streaming apps are some of the most common ideas for entrepreneurs lately for new apps but they’re also incredibly intensive when it comes to both data transmission requirements and carving out segments of an already saturated market. Like any app, it requires planning and research to bring to life so it’s helpful to know what you’re up against.
Creating streaming components and features for select apps we’ve built over the years has taught us a few things, some of which you might find helpful. If you’re thinking about building an app to stream video or audio whether on-demand, live streaming, or a bit of both, we’d like to revisit this topic and take it a step further to share more of our insights.
Live audio & video streaming apps vs on-demand video
People love to stream content – there are all kinds of ways you can slice it like in this report that shows how streaming has gone from stepping on the toes of TV to kicking it in the shins. In addition, all kinds of other data published over the years that shows “the average person spends X hours per Y streaming stuff” always tends to have a sizable X-to-Y ratio.
Ignoring last year’s boom in streaming because of the pandemic, the trend will keep growing for the foreseeable future. While there’s still room for more on the market, especially for ideas that are both innovative and well-received, execution is paramount as some well-funded ventures like Quibi have famously gone up in flames only months after launch.
To get started, you’ll need to think in terms of an MVP for the multitude of benefits it provides. While you can do both in time, understand that each style requires different tools to build out optimal front and back ends. Like the many streaming platforms that offer both live and on-demand content such as YouTube or Hulu, your best off to focus on one style before moving to another. And if your ultimate focus is only one style of content then you’ve managed to avoid the problem altogether but you’ll still need to adhere to minimal delivery and ongoing iterative development principles.
One of the first matters to tend to will be understanding the ingredients and costs for building and supporting audio or video streaming apps. We’ve talked about a few points on building a streaming app previously so let’s quickly recap on the main points we made as they relate to live and on-demand streaming.
The cost of building an app
If you read the blog from the last link (which you should), you’ll notice that we used Netflix as an example because the data is easy to come by. The company uses a relatively straightforward recipe to arguably set the standard for streaming services.
To build something like Netflix that streams on-demand video or an app that live-streams such as the news streaming components we designed and developed for the Bloomberg app, both will have similar frontends and cost, at least generally speaking. Your frontend app development will be similar in each scenario but the backends will look different as well as the technologies (i.e, third-party tools and their APIs) that connect the two ends.
On-demand video: the need for a robust storage solution
Let’s say you’re only publishing your own content on an on-demand streaming app: you’ll be able to plan for a set amount of storage for the content you’re hosting. For sites that will allow user-submitted content, the more popular you are, the more storage space you’ll need but the exact amount will (well, should) constantly increase. In either case, you’ll need a scalable data storage solution on your backend.
Publishing your own content should be relatively free from licensing costs, though you will likely be paying royalties. Netflix historically hasn’t paid royalties because of how they invest in licensing but it looks like that may change so keep in mind that this can come into play which would need to be factored into costs.
For those hosting a platform that’s more akin to YouTube, expect that any growth in users will come with additional storage. Users that are there just to view are one thing but content creators driving your platform might (and ideally should) have a substantial need for fast, reliable storage. This is one of the many reasons that cloud-based storage solutions like cloud storage from Amazon are strongly preferred unless you want to take on the awful burden of managing your own data center.
Live streaming: tools for connecting users
If your app intends to stream something and retain the data, whether it’s an organized broadcast from a content creator or a private stream between users, scalable data storage will be needed as well. Here, storage shouldn’t be as high when compared to an app that hosts on-demand, user-generated content plus, planning around storage growth should be a little easier. Based on a function of how many active users you have, there’s a certain limit to how much live streaming can be done at any given time. Though storage needs shouldn’t suddenly spike unless there’s a new influx of active users, it will constantly grow.
One thing that sets live streaming apart is the upcoming trend for users to interact with each other. Live, interactive streaming is quickly becoming a popular style of app as we can see from major platforms like Twitter Spaces, Twitch, and the upcoming Fireside app that will be joining the list of things owned by Mark Cuban. While there are all kinds of ways to do it, one of our favorite solutions for streaming and communicating is Twilio.
Twilio is a fantastic tool for developers that allows us to easily scale out all kinds of streaming solutions. Adding to their catalog of cool stuff is the Twilio Live platform that provides developers with a set of powerful tools for building experiences as you see in Clubhouse and beyond. These tools are inexpensive, relatively speaking, as they mean you don’t have to invest in a massive internal development undertaking but you will need to pay for usage of the tool as well as the actual streaming portion through another third-party service which we’ll cover shortly.
Whether you’re building with Twilio or something else, keep in mind that users should be able to interact in other ways like reacting or commenting in real-time as you see on Twitch. Some content, both live and on-demand, will require some mechanism for interacting but some won’t need much beyond the ability to play a piece of content.
Video CMS & CDNs for streaming
Both on-demand and live streaming apps will find that a significant portion of costs will stem from the transmission of the data through a CDN (Content Delivery Network.) On-demand services that “play” a video or audio file use services like Amazon CloudFront to stream over the web. For example, an on-demand set up might use CloudFront to deliver media stored in Amazon S3 containers to a player (i.e., your app) across the web.
The CDN you use will incur costs based on the amount of data transmitted across the web. This is mainly a function of the sheer volume of data transmitted which is further influenced by the type of encoding such as video formats like UHD, HDR+, Dolby Vision, and others. As you can imagine, the fancier the quality, the more power and bandwidth needed to adequately stream across the web.
Remember the blog from earlier that we called out? We break down specifics of how CloudFront costs are calculated. Here it is again if you’re curious.
Another tool you’ll need is a video CMS (Content Management System) to help you organize and interact with data you store from your media files and other content. If you’ve ever made or supported a site with WordPress, Squarespace, or Wix, then you’re already familiar with the concept of a CMS. This is essentially the kind of management console that you log into to upload media and create pages for content. These solutions are used so you and your users (depending on the design of your app) can create and manage content.
A CMS allows administrators to interact with data on the platform and complete tasks like upload content, edit metadata, and perform other processes of this nature. For user-driven platforms, the CMS will also serve as a key component in helping users manage data like their public profile content (if a platform has a social element) and tie into an app or website’s portal where users should be able to add and modify content. Some solutions will have certain perks like packages that come with storage or even a custom user portal that you can tailor to your liking and embed in your app. Here, it really comes down to what’s most functional per the specific goals of the app itself. For example, you probably wouldn’t need a robust user portal if your users will simply be clicking and viewing content like Hulu, HBO Max, Disney+, and others.
We know what it takes to build an attractive streaming experience
Audio and video streaming apps prove to be a gauntlet for many experienced teams because of the high-maintenance nature of these products. We understand that any issue that causes a bottleneck will stifle users which is why we not only research and test extensively but build with scalability and resilience in mind. For more information or to talk about your idea with our team, get in touch.