A modern video compression platform.
Compress videos locally with a beautiful React interface, a high-performance FastAPI backend,
real-time progress tracking, advanced FFmpeg controls, analytics, and zero cloud uploads.
⚡ Fast • 🔒 Private • 🎬 FFmpeg Powered • 📊 Real-Time Analytics • 🐳 Docker Ready
Compressly is a full-stack video compression platform that combines the power of FFmpeg with a modern React + FastAPI architecture. Unlike cloud-based compressors, every file is processed locally, giving you complete privacy, faster performance, and full control over your media.
Key capabilities
-
🎬 Local & offline video compression
-
⚡ High-performance FastAPI backend
-
📂 Drag & drop multi-file queue
-
📊 Live compression progress
-
⏸ Pause, resume & cancel processing
-
🎚 Advanced FFmpeg settings
-
📈 Compression analytics & history
-
🌙 Light & Dark mode
-
🔒 Zero cloud uploads
-
🐳 Docker support
-
🎬 Local & Offline Video Compression
-
⚡ High-performance FastAPI backend
-
📂 Drag & Drop multi-file uploads
-
📊 Live compression progress
-
⏸ Pause / Resume / Cancel processing
-
🎚 Advanced FFmpeg controls
-
📉 Compression statistics & analytics
-
📜 Compression history
-
🌙 Dark & Light themes
-
🔒 Privacy-first local processing
-
⚙ Docker deployment
-
🗑 Automatic temporary file cleanup
React Frontend
│
│ REST API
▼
FastAPI Backend
│
┌──────────────┴──────────────┐
│ │
▼ ▼
FFmpeg Engine SQLite Database
│ │
▼ ▼
Video Compression History & Analytics
- React
- JavaScript
- Vite
- Tailwind CSS
- Framer Motion
- Python
- FastAPI
- Pydantic
- SQLite
- FFmpeg
- FFprobe
- psutil
- Docker
- Docker Compose
- GitHub Actions
Compressly/
├── backend/
│ ├── app/
│ │ ├── routers/
│ │ ├── services/
│ │ ├── models/
│ │ ├── schemas/
│ │ ├── middleware/
│ │ ├── database/
│ │ └── main.py
│ │
│ ├── tests/
│ ├── requirements.txt
│ └── run.py
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── hooks/
│ │ ├── context/
│ │ └── assets/
│ │
│ ├── public/
│ └── package.json
│
├── uploads/
├── compressed/
├── temp/
├── logo/
├── docker-compose.yml
└── README.md
git clone https://github.com/Vikki-2006/Compressly.git
cd Compresslydocker compose up --buildApplication
http://localhost:3000
cd backend
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
pip install -r requirements.txt
python run.pyBackend
http://localhost:8000
cd frontend
npm install
npm run devFrontend
http://localhost:5173
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Server health |
| POST | /api/metadata |
Read video metadata |
| POST | /api/compress |
Compress video |
| GET | /api/compress/status/{task_id} |
Compression status |
| POST | /api/compress/control |
Pause / Resume / Cancel |
| GET | /api/download/{task_id} |
Download result |
| GET | /api/history |
Compression history |
| DELETE | /api/history/{task_id} |
Delete history |
- Local-only processing
- No cloud uploads
- Multi-file queue
- Background workers
- SQLite logging
- Interactive analytics
- Responsive UI
- Dark mode
- Automatic cleanup
- Docker ready
- ✅ Video Compression
- ✅ Compression History
- ✅ Docker Support
- ✅ Analytics Dashboard
- ✅ Advanced FFmpeg Controls
- ⏳ Authentication
- ⏳ User Profiles
- ⏳ Batch Compression
- ⏳ GPU Acceleration
- ⏳ WebSocket Live Progress
- ⏳ Cloud Storage Integrations
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Commit your changes
- Push the branch
- Open a Pull Request
This project is licensed under the MIT License.
Built with using Python, FastAPI, React, and FFmpeg.