π Introducing Social Media Video Downloader
Hey DEV community! π I'm excited to share my latest open-source project: a full-stack video downloader solution that lets you download videos from major social media platforms with enterprise-grade features.
π― What's Special About This Project?
Unlike typical video downloaders, this project offers:
- Enterprise-Grade Security: API key authentication, rate limiting, IP whitelisting
- Multiple Platform Support: YouTube, Facebook, Instagram, TikTok, Twitter
- Modern Stack: NestJS backend + Next.js 14 frontend
- Real-Time Progress: Live download progress tracking
- Type Safety: Full TypeScript support
- Automatic Dependencies: Self-managing binary dependencies
π οΈ Tech Stack
Backend (NestJS)
- TypeScript
- PostgreSQL with Prisma
- yt-dlp integration
- Swagger API docs
- Rate limiting
- CORS protection
Frontend (Next.js 14)
- Modern UI with dark/light theme
- Server-side rendering
- Real-time progress updates
- Responsive design
- TypeScript
β¨ Features Breakdown
Video Platforms Support
- YouTube: Videos, playlists, shorts
- Facebook: Public/private videos, stories
- Instagram: Posts, reels, IGTV
- TikTok: Videos without watermark
- Twitter: Tweets, spaces recordings
Download Options
- Quality selection (up to 4K)
- Format conversion
- Audio extraction
- Custom output paths
- Progress tracking
Security Features
- API key authentication
- Rate limiting
- IP whitelisting
- Download duration limits
- Usage analytics
π Quick Start
Backend Setup
# Clone the backend
git clone https://github.com/your-username/social-media-video-downloader-api
cd social-media-video-downloader-api
# Install dependencies
pnpm install
# Setup environment
cp .env.example .env
# Start development server
pnpm run start:dev
Frontend Setup
# Clone the frontend
git clone https://github.com/fabwaseem/Social-Media-Video-Downloader
cd Social-Media-Video-Downloader
# Install dependencies
pnpm install
# Setup environment
echo "NEXT_PUBLIC_API_URL=http://localhost:3001" > .env.local
# Start development server
pnpm dev
π¨ Screenshots
[Add your application screenshots here]
π§ Architecture Overview
The project follows a clean, modular architecture:
Backend Frontend
βββββββββββββββ βββββββββββββββ
β API Layer βββββREST APIβββββ Next.js β
βββββββββββββββ€ βββββββββββββββ€
β Services β β React β
βββββββββββββββ€ βββββββββββββββ€
β Prisma β β State β
βββββββββββββββ βββββββββββββββ
π€ Contributing
This project is open source and welcomes contributions! Here's how you can help:
- π΄ Fork the repositories
- π§ Create your feature branch
- π» Add your features
- π Test your changes
- π€ Create a Pull Request
π― Future Plans
- [ ] Add more platform support
- [ ] Implement batch downloading
- [ ] Add download scheduling
- [ ] Create browser extension
- [ ] Add more output formats
- [ ] Implement user dashboard
π Links
π‘ Why I Built This
I created this project to provide a robust, enterprise-grade solution for video downloading that's both secure and scalable. The existing solutions either lacked security features or weren't suitable for production use.
π Show Your Support
If you find this project useful, please consider:
- β Starring the repositories
- π Sharing with your network
- π Reporting issues
- π‘ Suggesting features
- π€ Contributing code
π¬ Get in Touch
Have questions or suggestions? Feel free to:
- Open an issue
- Create a pull request
- Find me on Github
- Follow me here on DEV
Let's make video downloading better, together! π
Top comments (0)