Being a bootstrapped startup, the tools we choose to work with have a massive impact, both in term of complexity of our infrastructure, and in terms of cost.
First, let's present the two contenders...
When it came to choose our video hosting provider, we wanted to apply the same rule. Api.video is a super simple and developer friendly solution. They have SDKs for nearly any programming language (including Python - which we use) and have Stripe-like documentation with code examples, that makes it super simple to integrate with.
It's also a small french startup with an approachable support team. So except for the risk of them going out of business, it's a great solution.
Unfortunately, their pricing is extremely high, this time we're talking 10x higher than Cloudflare Stream. And given that video hosting costs scale much faster than server/database costs as a company grows, we had to seriously consider this.
Cloudflare on the other hand is a massive enterprise company that runs nearly all of the Internet. This means that they'll most likely still be there in 10 years.
While their documentation is more or less up to date, it's definitely not as simple and easy to integrate with. Especially when it comes to uploading and hosting large video files (beyond 5-10 minute videos).
But their pricing is so much cheaper (and they have a generous 1-year startup plan), that we couldn't just ignore their solution.
Let's take a deep look at their pricing plans, with a real-life example: our company.
Both companies charge separately for delivering videos and storing them, with Api.video charging an additional hefty fee for video encoding (which Cloudflare offers for free).
Video storage pricing can be a bit tricky, so remember:
- Encoding is only charged once. You won't pay multiple times for encoding a single video
- Storage is charged per month (so if you store a video for two months, you'll pay for two months of storage)
- Delivery is charged per minute viewed. So if a video is never watched, you won't pay anything.
Api.video offers a few different pricing plans (29$/mo, 99$/mo & enterprise) with different prices per minute for encoding, storing and delivery. But the difference is not large and for simplicity, we're using their main $99/mo pricing in this example (which is what we'd go for anyway).
Here are the costs
- $55 per 1,000 minutes encoded
- $4 per 1,000 minutes stored (per month)
- $1.5 per 1'000 minutes delivered
So if you upload 10'000 minutes of video, that will be watched twice, Api.video will cost you 55*10+4*10+15*2 = $620 per month.
Cloudflare Stream Pricing
Cloud has a simple flat Pay-as-you-use pricing model, as shown below:
- $5 per 1'000 minutes stored (per month)
- $1 per 1'000 minutes delivered
So if you upload 10'000 minutes of video, that will be watched twice, Cloudflare Stream will cost you 5*10+1*2 = $52 per month.
On top of this cheaper plan, Cloudflare has a startup plan that we got access to through our startup accelerator, that offers the following benefits for Stream:
- 100'000 minutes storage (in total) worth $500 / month
- 500'000 minutes delivered (per month) worth $500 / month
For a total value of $12'000.
Api.video is therefore 10x more expensive for our specific needs (our app makes it super simple to record and share video messages over the internet - our users therefore upload a lot of video minutes but those only get watched once or twice on average).
This means that as a company, we'll choose to use Cloudflare Stream, especially given that the first year will basically be free of charge for us thanks to their generous startup plan.
Edge case pricing consideration
The only area where Api.video is slightly cheaper is video storage ($1 cheaper per 1'000 minutes stored). But this is never made up by the fact that you have to pay an additional $55 per 1'000 encoded with api.video (unless you plan on storing your video for over five years, in which case it will make up for the price.
Still, since api.video is $0.5 more expensive per 1'000 video minutes delivered, the video would need to never be watched for api.video to be cheaper than Cloudflare.
So if you plan on storing videos for many years without them ever being watched, then api.video might turn out to be cheaper. But that's a big if.
As a bootstrapped company, we simply can't afford to spend so much more money on video storage (10x more). Even if we have to suffer through some unclear documentation for a few weeks, it will be worth the cost savings in the long run, especially if we grow past the hobby stage, and I guess that will be the case of most startups.