Cloud video storage for web application - youtube

I created an app that records short videos and uploads them on a cloud server. Those videos are accessible via another web server on the same cloud.
Is it possibile to use a service like youtube (or similar) to store infinite videos at reasonable price?
Right now I am paying almost 130€ euros months for 500G of storage, which is the price of my Freenas server on the cloud.
Anyone knows the best way to upload many videos at lower price?
thank you!!

Related

AWS s3 upload + api taking too long

Currently, I'm using amazon s3 to store all the objects like images and videos. I'm using IOS AWS SDK to upload the objects.
The flow of my application are
User snaps a photo or record a video
User add additional information on a form, some sort like
Instagram's caption (using Alamofire)
user clicks continue, and then AWS will begin to upload the images
and videos to S3 using IOS AWS SDK
After object has been successfully uploaded to S3, S3 will response
with a link
Finally using Alamofire to send the information including the link from
S3 as parameters to POST API
The problem that I'm facing is that it takes quite some, to do AWS upload + calling an API. This indeed is a bad user experience. Most of the images are roughly less than 5 MB
My solution
Resizing the image, but what about Video?
After user click continue, instead of doing the AWS upload + calling
API, why not do it as a background on a different screen, so that
users don't need to wait for the loading indicator
What approach is great to solve this problem?. Thanks
Your problem can be rephrased to a questions of "How do I minimise upload latency?"
The most important thing is to use AWS for all app infrastructure.
If you are using S3 as a file storage and uploading from external server, you'll face a huge impact on upload speed due network latency.
When user uploads, your back-end process will write to disk first -
use EBS SSD.
Choose EC2 with increased network latency.
Place all your AWS resources in the same region and same availability
zone.
Another solution you might want to consider is to use S3 post-operation, instead of in-operation.
That simply means your server takes the upload and gives back URL to user, where independent background process syncs with S3 outside users requests.
In this situation you would have User -> Server -> User.
Right now you have User -> Server -> S3 -> User.
You may want to use content delivery network service like AWS cloudfront when speed and user experience is of utmost importance.
Amazon S3 is ideal when low cost of bandwidth and storage is more critical than speed of access, whereas Cloudfront is all about speed of access.
Please see this link as to how to setup cloudfront with your S3 bucket.
When your users are distributed worldwide, you should enable and use S3 Transfer Acceleration. This will decrease the upload time for user who are not close to your buckets's region.
Besides that, uploading 5 MB will take some time depending on your mobile connectivity. So you should resize the image on the client and you can think about starting the upload earlier, e.g. when the users enters details the upload already runs in the background.
I noticed that including "region" in the config speeds up uploading in 7 seconds.
There are maybe other ways to improve, I'm currently researching about including direct endpoint URL. Or maybe that's it: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
For me, it was not providing the content type option in the upload function. Saved like 60+ seconds

Cloud-based automatic new youtube upload download to dropbox

Basically what I'm trying to achieve is:
-whenever a new video is posted on my channel, trigger a zap/ifttt to download it to dropbox in mp4 for backup purpose, added bonus - extract audio to mp3.
I want to do it automatically and on a free remote service, not my PC or VPS. I know it all this could easily be done locally, but I want an independent solution for a number of reasons.
The problem is, youtube api prohibits video download.
So far I have investigated web-based downloaders, but couldn't figure a way to automatically get a download link without visiting the website. cloudconvert doesn't support direct youtube download.
The closest thing I found is a web-fork of youtube-dl that allows it to run on owncloud, but I'm failing to find a free owncloud provider that allows user apps.
There should not be more than 3 short channel uploads a day, so performance and delays are not much of an issue, I'm happy to wait up to a day for the download to commence.
Any help much appreciated.
One step of the process is probably using offcloud, which can fetch your youtube video and store it on a cloud storage, such as google drive, ftp, etc. It has API

iOS AWS S3/DynamoDB Design for Video Recording App with Cloud Storage

I'm creating an iOS app that allows users to:
Log into the app
Record videos
Upload the videos to the cloud
Watch their videos stored in the cloud
What is the best way to design the backend? Normally I would use Parse (which I've used previously), but given that they're shutting down, I need to find a new solution. Keep in mind that I've never done server side programming before.
I was thinking of using a configuration as follows:
AWS DynamoDB
Usernames, passwords, emails, etc.
Video meta data - titles, description, tags, etc.
URL/pointers to video files on AWS S3
AWS S3
Video files
AWS Lambda
Processing of video files - compression, joining/splitting videos, etc.
This is my first time implementing a backend like this, so I was just wondering if this make sense?
I would Suggest You Can Add SQS In There It will help decouple.
SNS For Notification and SES For Emails.
AWS Elastic Transcode to maintain Uniformity (For Video Conversion if Required)
Also I would Suggest Using of AWS CDN So that the end users get Benefit out of it.
Using of AWS Glacier for storage of Retired User Who have Not Used Account Since Long Time (whatever Limit you set) and Then Deleting it Permanently (After Set Time is spent in glacier storage).

Upload video and share link - API?

I am developing an app that shares video across several social sites (Facebook, Twitter, Pinterest and SMS and Email).
Not all of these services does video upload (like Twitter), and sharing the video on multiple networks is time consuming for the user.
I am looking for a service that will allow users to upload videos, and the service will then provide a url the user can share on the social sites. It would be great if this is possible without having to create user accounts, but only one developer account.
All videos will be less than 3 minutes in length.
Hope this makes sense.
I have been thinking about creating an app linked YouTube account, but that might cause problems since users can upload all kinds of things and that might get the account shut down.
Hoping to keep costs down on this one, and not have to host all the videos on my own servers (AWS or something like that).
Hope you have got some ideas.
Thanks!
This is not a programming or even a technical question.
viddur.com might do what you want — its a startup and they probably don't have a public api yet, though. Other than that, no one will offer you this service for free. It cost between 0.01-03 cents to encode video (and you have to do it multiple times per video to support varios platforms). Encoding and hosting video is not as cheap as static images. You're basically trying to create a product around a free service that doesn't exist.
TL:DR: Abandon your idea, and only post technical questions to Stackoverflow.

Hosting and streaming video to an ios app

I am about to build an app that initially displays thumbnails of high quality videos. When users click on a thumbnail, they will go through iOS's in-app payment system to pay for the video and once that is complete, the video will open and start playing in Quicktime(iphones native video player).
Can you please suggest where i should host my videos? Does apple provide video uploads as well or is there a simple to use tool that allows this? I am looking for a service that will let me upload or delete high quality videos whenever needed so that non tech people can administer too. Then i can easily just link those videos to my app.
Thanks in advance
Depends on format if its just progressive download mp4 you could contract with any of the hosting companies, they start at 5.00 - 100 dollars monthly depending on what you need. the higher priced ones offer dedicated servers that can run .net or php, you could take a service for instance that hosts at 5.00 a month,, right a simple php app that does the security or get a pre-built one.
If you want to do real streaming using HLS then you need a server that can support it, one though a bit expensive is wowzma, prices vary but it is usually quite expensive.

Resources