A robust and scalable backend for a video hosting platform similar to YouTube. Built with Node.js, Express.js, and MongoDB, this project features a complete set of RESTful APIs for managing videos, users, tweets, playlists, and social interactions like comments and likes.
- Authentication: Secure Signup, Login, and Logout using JWT (Access & Refresh Tokens) and bcrypt for password hashing.
- Profile: Update user details, avatar, and cover image.
- Security: Standard practices including password encryption and secure cookie handling.
- Uploads: Upload videos and thumbnails seamlessly using Multer and Cloudinary.
- Publishing: Toggle video publication status (public/private).
- CRUD Operations: Create, Read, Update, and Delete videos.
- Comments: Add, update, and delete comments on videos.
- Likes: Toggle likes on videos, comments, and tweets.
- Subscriptions: Subscribe/Unsubscribe to channels and view subscriber lists.
- Tweets: Create and manage text-based tweets/posts.
- Playlists: Create playlists, add/remove videos, and manage playlist visibility.
- Dashboard: View channel statistics including total views, subscribers, video counts, and likes.
- Search & History: Watch history tracking and aggregated user data.
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (with Mongoose ODM)
- Authentication: JSON Web Tokens (JWT) & bcrypt
- File Storage: Cloudinary
- File Upload: Multer
- Utilities:
cookie-parser,cors,dotenv
Follow these steps to set up the project locally.
git clone [https://github.com/rajkumar0932/yt-clone.git](https://github.com/rajkumar0932/yt-clone.git)
cd yt-clone