Readme · MD
🎬 Media Vault - Social Media Downloader
A beautiful, production-grade web application for downloading media from Facebook, Instagram, TikTok, Twitter, YouTube, and 1000+ other platforms.
✨ Features
- 🎯 Multi-Platform Support - Download from 1000+ platforms
- 🎨 Beautiful UI - Modern dark theme with smooth animations
- 📱 Mobile Responsive - Works on phones, tablets, and desktops
- 🚀 Fast Downloads - Optimized yt-dlp integration
- 💾 Smart File Management - Organized downloads by platform
- 🔒 Secure - File path validation and sandboxed downloads
- 🎚️ Customizable Paths - Save to any location
- 📊 Real-Time Status - Live download progress and status updates
🚀 Quick Start
Windows
bash
setup-windows.bat
npm startmacOS/Linux
bash
chmod +x setup-macos-linux.sh
./setup-macos-linux.sh
npm startThen open http://localhost:3000 in your browser.
📋 System Requirements
🔧 Installation
1. Install Node.js and Python
Download and install from official websites.
2. Clone/Download Project
bash
git clone <repo-url> media-vault
cd media-vault3. Install Dependencies
bash
npm install
pip install yt-dlp4. Start Server
bash
npm start5. Open Browser
Visit http://localhost:3000
📁 Project Structure
media-vault/
├── social-media-downloader.html # Web UI
├── server.js # Express backend
├── package.json # npm dependencies
├── SETUP.md # Detailed setup guide
├── setup-windows.bat # Windows setup script
├── setup-macos-linux.sh # macOS/Linux setup script
├── .gitignore # Git ignore rules
└── downloads/ # Downloaded files (auto-created)
├── facebook/
├── instagram/
├── tiktok/
├── twitter/
├── youtube/
└── other/🌐 Web Interface
Supported Platforms
- ✅ YouTube
- ✅ Facebook (Posts & Reels)
- ✅ Instagram (Posts, Reels, Stories)
- ✅ TikTok
- ✅ Twitter/X
- ✅ Twitch
- ✅ Snapchat
- ✅ Vimeo
- ✅ And 1000+ more...
How to Use
- Select Platform - Click a tab to choose your platform
- Paste URL - Enter the media URL
- Choose Location (optional) - Specify where to save
- Click Download - Start the download
- File Saved - Get the file path or download link
🔗 API Reference
Download Endpoint
http
POST /api/download
Content-Type: application/json
{
"url": "https://www.youtube.com/watch?v=...",
"platform": "youtube",
"savePath": "/custom/path" // optional
}Response
json
{
"success": true,
"filePath": "/path/to/downloaded/file.mp4",
"fileName": "video-title.mp4",
"filesDownloaded": ["video-title.mp4"],
"message": "Successfully downloaded 1 file(s)"
}List Files
http
GET /api/files?platform=youtubeSystem Info
http
GET /api/system-info⚙️ Configuration
Change Port
bash
PORT=8080 npm startChange Download Directory
Edit server.js:
javascript
const DOWNLOAD_DIR = path.join(process.cwd(), 'my-downloads');Adjust Download Quality
Edit server.js and modify the yt-dlp format:
javascript
// For best quality
const format = 'best';
// For audio only (MP3)
const format = 'bestaudio[ext=m4a]/best[ext=mp4]';
// For specific resolution (max 720p)
const format = 'best[height<=720]';🐛 Troubleshooting
"yt-dlp not found"
bash
pip install yt-dlp --upgrade"Port 3000 already in use"
bash
PORT=3001 npm start"Cannot find module 'express'"
bash
npm installDownload fails for private videos
Some platforms require authentication or have geo-restrictions. Check the error message for details.
See SETUP.md for detailed troubleshooting guide.
🔒 Security
- ✅ Input validation and sanitization
- ✅ File path traversal prevention
- ✅ Sandboxed downloads
- ✅ Safe error messages
- ✅ CORS enabled (modify as needed)
For production use:
- Add authentication
- Use HTTPS
- Rate limiting
- Run behind reverse proxy
📊 Performance
- Typical YouTube video: 2-5 minutes (depends on size/quality)
- Instagram posts: 30 seconds - 2 minutes
- TikTok videos: 10-30 seconds
- Multiple downloads: Queued automatically
Tips:
- Use SSD for faster downloads
- Have sufficient disk space
- Close other bandwidth-heavy applications
- Install FFmpeg for better processing
🎯 Use Cases
- 📚 Education - Download lecture videos
- 🎬 Content Creation - Collect reference materials
- 📰 Research - Archive news clips
- 💾 Backup - Save important videos
- 🎓 Offline Learning - Download courses
- 🎨 Inspiration - Collect design/art references
📝 License
MIT License - Feel free to use, modify, and distribute.
🤝 Contributing
Found a bug? Have a feature request? Open an issue!
📚 Resources
- yt-dlp Documentation: https://github.com/yt-dlp/yt-dlp
- Express.js Docs: https://expressjs.com/
- Node.js Guide: https://nodejs.org/en/docs/
- Supported Sites: https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md
⚠️ Legal Notice
Respect Copyright and Terms of Service:
- Only download content you have permission to download
- Respect creators' intellectual property rights
- Follow platform terms of service
- Check local laws regarding downloads
- This tool is for personal use only
💡 Tips & Tricks
Download Audio Only
bash
yt-dlp -x --audio-format mp3 "URL"Download Specific Quality
bash
yt-dlp -f "best[height<=1080]" "URL"Download Entire Playlist
bash
yt-dlp "PLAYLIST_URL"Update yt-dlp
bash
pip install yt-dlp --upgrade🎉 Acknowledgments
- Built with Express.js
- Powered by yt-dlp
- Inspired by modern web design principles
📧 Support
For issues and questions:
- Check SETUP.md
- Review error messages
- Check yt-dlp docs
- Verify all dependencies are installed
Made with ❤️ for content creators and enthusiasts
Enjoy downloading! 🎬