A premium full-stack media conversion tool with AI-powered watermark detection, video enhancement, and real-time progress tracking via WebSockets.
Media Converter Pro is a full-stack application with a Python/FastAPI backend and a Vite-powered frontend. It handles video and image format conversion, URL-based video downloading (via yt-dlp), AI-assisted watermark detection and removal using OpenCV, and video quality enhancement — all with real-time progress updates pushed to the browser via WebSockets.
- Universal Format Conversion — Convert between MP4, AVI, MOV, WebM (video) and WebP, PNG, JPG (images).
- URL Video Downloader — Download videos from URLs using
yt-dlpwith metadata extraction (title, duration, resolution options). - AI Watermark Detection — OpenCV-based computer vision pipeline to detect watermarks in video/image content.
- Watermark Removal — Automated inpainting to remove detected watermarks from media files.
- Video Quality Enhancement — Filter pipeline for sharpening, contrast improvement, and noise reduction.
- Real-Time Progress via WebSockets — Live progress bars and status messages pushed to the client during long-running jobs.
- Batch Processing Architecture — Job queue system for handling multiple concurrent conversion requests.
- Auto Cleanup — Startup routine clears temporary files from previous sessions.
| Layer | Technology |
|---|---|
| Backend Framework | FastAPI (Python) |
| ASGI Server | Uvicorn |
| Video Processing | FFmpeg (via imageio-ffmpeg) |
| Computer Vision | OpenCV (headless) |
| Video Downloader | yt-dlp |
| Real-Time Comms | WebSockets |
| File Handling | aiofiles (async I/O) |
| Frontend | Vite + Vanilla JS |
| Styling | CSS + Space Grotesk (Google Fonts) |
media-converter-pro/
├── backend/
│ ├── main.py # FastAPI app — all endpoints + WebSocket
│ ├── requirements.txt # Python dependencies
│ └── temp/ # Temp storage for uploads & outputs
│ ├── uploads/ # Incoming files (auto-cleaned on startup)
│ └── outputs/ # Processed files ready for download
├── src/
│ ├── js/
│ │ └── app.js # Frontend logic (fetch, WebSocket client, UI)
│ └── css/
│ └── styles.css # Application styles
├── index.html # Main SPA entry point
├── public/ # Static assets
└── package.json # Vite config
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/health |
Health check (FFmpeg + yt-dlp status) |
POST |
/api/convert |
Convert uploaded video or image file |
POST |
/api/video/fetch-info |
Fetch video metadata from URL |
POST |
/api/video/download |
Download video from URL at selected quality |
POST |
/api/video/detect-watermark |
Run watermark detection on uploaded file |
POST |
/api/video/remove-watermark |
Remove detected watermark from file |
POST |
/api/video/enhance |
Apply quality enhancement pipeline |
WS |
/ws/progress/{job_id} |
WebSocket channel for real-time job progress |
- Python 3.10+
- Node.js 18+
- FFmpeg installed system-wide (or bundled via
imageio-ffmpeg)
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000npm install
npm run dev
# Frontend runs on http://localhost:5173npm run build
# Serve dist/ with any static host (Nginx, Caddy, etc.)fastapi — High-performance Python web framework
uvicorn — ASGI server for FastAPI
python-multipart — Multipart file upload support
websockets — WebSocket protocol implementation
yt-dlp — Video downloading from 1000+ sites
opencv-python — Computer vision (watermark detection/removal)
imageio-ffmpeg — Bundled FFmpeg binary
aiofiles — Async file I/O
- GPU-accelerated video processing (CUDA/Metal)
- Batch upload queue with priority management
- Docker containerization for one-command deployment
- Subtitle extraction and embedding
- Audio format conversion (MP3, AAC, WAV, FLAC)
Built by Cesar Matta — Full Stack Developer Part of the Nodyt ecosystem of developer tools.
Media Converter Pro — Professional media processing in your browser.