Objective– To build a social networking website for a a very specific purpose. Registered users get to post videos, images and text content on the website. On the dashboard of the website, a user gets a feed of posts based on the topics they are subscribed to.
Progress Made– I have adopted MERN stack for building the web app. With the help of some online tutorials, I have been able to build a basic social media app on which a user can register, login, create profile, view profiles, post content, react to posts.
Problem– I need to incorporate the functionality allowing registered users to upload media content, both images and videos. I cannot use the database for storing those content but will probably require more storage space. The following are the options I am considering and the issues I have with those options,
- Using YouTube for hosting the videos: Create a google account specifically for the website and allow users to upload videos directly into the associated YouTube channel. Even after spending two weeks researching on how to do it, I am still struggling to upload a video using YouTube API from my backend. Also, I want to enable a user logged in my web page to be able to post the content without having to log in to YouTube. I am not sure if that is possible. Further, if there happens to be any violation of YouTube policy due to some content a random user uploads from my website, the channel might get suspended. Is there a work around for these issues?
- If I continue using YouTube for hosting the videos, should I use some other cloud storage for storing the images?
- Should I opt some other cloud services like Amazon S3 to host the images and videos instead of using YouTube? What will be the approach to go ahead if I intend to scale in the future?
- Due to mere ignorance, I might also be overlooking some of the aspects that I should be considering before choosing an option.
I tried finding some guidance on these from my inner circle, very few of whom has significant development experience. I am hoping more experienced community members will be able to shed some light on these.