This project is a full-stack YouTube Clone built with the MERN stack.
It lets users explore and watch videos without login, while authenticated users can create channels, upload videos, edit or delete them, and play videos in a modern, responsive UI.
The backend integrates with RapidAPI to fetch and seed trending videos into the database, so the homepage always stays fresh with discoverable content.
🎥 Demo Video: Watch here
-
Guest Access
- Browse & search videos freely
- Play videos directly from homepage
-
Authentication (JWT-based)
- Secure login & signup
- Protected routes for managing videos and channels
-
Channel Management
- Create & customize channel (banner, avatar, description)
- Dashboard view of all your uploaded videos
-
Video Management
- Upload videos with title, description, thumbnail
- Edit video details anytime
- Delete videos from your channel
- Playback with views, timestamps, and metadata
-
RapidAPI Integration
- Fetch trending videos
- Seed into database for homepage discovery
- Comments Handling
- If RapidAPI quota/limit expires 🚫, external comments will not be fetched
- Users will still see only registered users’ comments stored in our database
-
Responsive Design
- Mobile-first design
- Optimized layouts for desktop, tablet, and mobile
- Frontend: React.js, Tailwind CSS, React Router, Context API
- Backend: Node.js, Express.js
- Database: MongoDB Atlas
- Authentication: JWT (JSON Web Token)
- API Integration: RapidAPI
- Deployment: Netlify (Frontend), Render (Backend)
- Source Code: GitHub Repository
- Node.js (v16 or higher) → Download here
- Git for Windows → Download here
- MongoDB Atlas account → Setup here
- Code Editor (VS Code recommended)
git clone https://github.com/Ushnika09/YouTube-Clone.git
cd YouTube-Clonecd backend
npm installnpm startcd ../frontend
npm installnpm run devYouTube-Clone/
├── backend/ # Express.js + MongoDB + JWT + RapidAPI
├── frontend/ # React.js + Tailwind + Context API
└── README.md