Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 Media Converter Pro

Python FastAPI Vite OpenCV FFmpeg WebSockets

A premium full-stack media conversion tool with AI-powered watermark detection, video enhancement, and real-time progress tracking via WebSockets.


🎯 Project Overview

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.


✨ Key Features

  • Universal Format Conversion — Convert between MP4, AVI, MOV, WebM (video) and WebP, PNG, JPG (images).
  • URL Video Downloader — Download videos from URLs using yt-dlp with 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.

🛠️ Tech Stack

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)

🗂️ Project Architecture

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

🔌 API Endpoints

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

🚀 Getting Started

Prerequisites

  • Python 3.10+
  • Node.js 18+
  • FFmpeg installed system-wide (or bundled via imageio-ffmpeg)

Backend Setup

cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

Frontend Setup

npm install
npm run dev
# Frontend runs on http://localhost:5173

Production Build

npm run build
# Serve dist/ with any static host (Nginx, Caddy, etc.)

📦 Backend Dependencies

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

🏗️ Roadmap

  • 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)

👨‍💻 Author

Built by Cesar Matta — Full Stack Developer Part of the Nodyt ecosystem of developer tools.


Media Converter Pro — Professional media processing in your browser.

About

Full-stack media converter — FastAPI + OpenCV + FFmpeg + yt-dlp + WebSockets for real-time progress

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages