A modern video streaming platform built with the MERN stack, featuring YouTube integration and a Netflix-inspired UI.
- Video Upload & Streaming - Upload and stream videos with multiple format support
- YouTube Integration - Search, browse, and add YouTube videos to your platform
- User Authentication - Secure JWT-based authentication system
- Responsive Design - Professional dark theme with mobile-first approach
- Video Management - Full CRUD operations for video content
- Search & Discovery - Advanced search with category filters
- Real-time Analytics - Track views, likes, and engagement
Frontend:
- React 18 with Redux Toolkit
- Tailwind CSS for styling
- React Router for navigation
- Axios for API calls
Backend:
- Node.js with Express.js
- MongoDB with Mongoose
- JWT authentication
- Multer for file uploads
- YouTube Data API v3
- Node.js 18+ and npm
- MongoDB database
- YouTube API Key
- Clone the repository
git clone https://github.com/yourusername/playcast.git
cd playcast- Install dependencies
# Backend dependencies
npm install
# Frontend dependencies
cd client && npm install && cd ..- Environment setup
# Copy environment template
cp .env.example .env
# Edit .env with your configuration- Start the application
# Start backend (Terminal 1)
npm start
# Start frontend (Terminal 2)
cd client && npm start- Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
Create a .env file in the root directory:
PORT=5000
NODE_ENV=development
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
YOUTUBE_API_KEY=your_youtube_api_key- Register/Login - Create an account or sign in
- Upload Videos - Share your content with drag & drop upload
- Browse Content - Discover videos and trending YouTube content
- YouTube Integration - Search and add YouTube videos to the platform
- Manage Profile - View and edit your profile and uploaded videos
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/me- Get current user
GET /api/videos- Get all videosPOST /api/videos/upload- Upload videoGET /api/videos/:id- Get video by IDDELETE /api/videos/:id- Delete video
GET /api/youtube/search- Search YouTube videosGET /api/youtube/trending- Get trending videosPOST /api/youtube/add- Add YouTube video to platform
This project is licensed under the MIT License - see the LICENSE file for details.
Sumant Yadav
- GitHub: @Sumant3086
- LinkedIn: sumant3086
- Email: sumantyadav3086@gmail.com
⭐ Star this repository if you found it helpful!