I'm looking to build an app which will rely heavily on users uploading videos and then playing them within the app.
I know Chris uses Wistia but it's pretty pricey, expecially .25c per video. I've looked on google without much luck but does anyone know any cheaper alternatives?
(youtube isn't an option since the videos need to be kept private)
Appreciate your advice.
Sadly pretty much all video is gonna be fairly expensive. You can look at Vimeo or just rolling your own with AWS S3 and using access permissions / presigned url. You'll have to have your own player for S3, like video.js or something. There are a few other options out there like bitmovin, but it's gonna depend a bit on how much you want to pay vs roll your own.
Thanks for your advice.
As a beginner I'd like to make use of third-party services as much as possible.
Vimeo looks like a good option & I believe they have the neccessary privacy requirements with private mode...
"In Private Mode, your videos will not be publicly visible on Vimeo.com and you're not able to use Groups or Channels. However, you can still use Vimeo to host, organize and share your videos in the following ways:
- Embed your videos on your website or other places around the web (You can even add domain-level privacy.)"
And it's pretty cost-effective compared to Wistia too.
On a scale of 1 - 10, how difficult do you think it will be to integrate video uploads and video playback via vimeo in a rails application?
They don't have any official libraries for rails, but they list two unofficial options in their documentation.
I suppose I could always out-source this part if need be.
Keep up the great work!
I think it should be really easy. The APIs you only need if you need to get a list of videos that are hosted or something.
You can hack something really easy together by just taking an embed code for a video and just simply replacing the video ID with an attribute stored on your model.
A pseudocode example of embedding Vimeo in Rails dynamically:
<iframe src="http://vimeo.com/embed/<%= @video.vimeo_id %>"></iframe>
This is how I do it with Wistia. I just set the ID in my admin area for a new episode. The only time I use the Wistia API is to make that easier. I upload the video, then use the API to populate a select dropdown with the videos that are uploaded so I can search and find the ID quicker.
Hi Chirs an @sweeetland I am actualling doing exactly this, vimeo basically gives you embed code under the share button and just make sure you have set up your privacy settings to allow your domain to embed.
<iframe src="https://player.vimeo.com/video/<%= @video.vimeo_id %>" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
Plyr is a really nice, accessible and well-designed player for video. It has support for Vimeo.
Also, api.video is an interesting service. They don't charge for video encoding, storage or downloads (views) but they do charge for ingestion (uploads). The free plan could be a good option for when you're just starting out but it can get kinda pricey if your app grows quickly. They have a really nice player which supports easy, secure streaming.