SM
smfils1/youtube-clone
A YouTube Clone using the MERN stack
MERN Stack YouTube Clone
This is a YouTube Clone that implements the main features of YouTube solely intended for educational purposes and is created under fair use.
* Video Uploads are limited to 25 MB.
Technologies
- MongoDB & Mongoose for the database
- Node & Express for the backend
- Fluent FFMPEG for video proccessing
- Google OAuth2 for authentication
- Google Drive API for cloud storage (services like AWS S3 and Google Cloud is recommended for production applications)
- React for the frontend
- Redux for frontend application state
- Material UI for UI
Features
- Google OAuth
- Video upload, streaming, commenting, and rating
- Channel subscriptions
- Trending, recommended, and categorized videos
- Video searching
- Pagination
- Watch history
- Video Playlist
- Updating & deleting videos
- Going live
Running Locally
Configuring environment variables
- Rename client's .env-sample to
.env - Rename server's .env-sample to
.env - Fill in the environment variable values in both
.envfiles
Starting the App
npm installto install all dependenciesnpm run devto run both client & backend in developmentcd server && npm run serverto run only backendcd client && npm startto run only client
Deploy to Heroku
The neccessary environment variables & buildpacks are defined in app.json
On this page
Languages
JavaScript98.5%HTML1.3%CSS0.2%
Contributors
MIT License
Created June 3, 2020
Updated November 13, 2025