How kazuke7/media-compression-backend works
This is a web application for quality-constrained image and video compression before file transfer. Users select media, submit it with optimization settings, review compression and quality results, then preview or download optimized files individually or as a ZIP. The frontend API route proxies optimization requests to Flask; Flask stores uploads and outputs and delegates media-specific work through a shared controller. The image compressor implementation and several frontend components were not sampled, so their internal behavior and unverified wiring are omitted.
Main entry points: page.tsx Optimization page · app.py Flask API · route.ts Optimization proxy · framework.py Media controller
Components 17
Web interface
- Optimization page
frontend/app/page.tsx - Media upload
frontend/components/upload-zone.tsx - Compression settings
frontend/components/settings-panel.tsx - Result cards
frontend/components/result-card.tsx - Transfer summary
frontend/components/transfer-summary.tsx
Request and delivery
- Optimization proxy
frontend/app/api/optimize/route.ts - Flask API
backend/app.py - Download endpoints
backend/app.py - Preview endpoint
backend/app.py
Media optimization
- Media controller
backend/framework.py - Image optimizer
backend/compression/image_module.py - Video optimizer
backend/compression/video_module.py
File storage
- Uploaded files
- Optimized files
Other components
- User
- FFmpeg tools
- Browser
Connections 24
- User → Optimization page: uses
- Optimization page → Media upload: renders
- Optimization page → Compression settings: renders
- Optimization page → Result cards: renders
- Optimization page → Transfer summary: renders
- Optimization page → Optimization proxy: posts files
- Optimization proxy → Flask API: forwards request
- Flask API → Uploaded files: saves uploads
- Flask API → Media controller: detects and optimizes
- Media controller → Image optimizer: dispatches images
- Media controller → Video optimizer: dispatches videos
- Image optimizer → Optimized files: writes results
- Video optimizer → Optimized files: writes results
- Video optimizer → FFmpeg tools: runs tools
- Flask API → Optimized files: cleans and reads
- Flask API → Optimization proxy: returns results
- Optimization proxy → Optimization page: returns JSON
- Optimization page → Result cards: provides results
- Result cards → Browser: opens download link
- Browser → Download endpoints: requests file
- Download endpoints → Optimized files: reads files
- Browser → Preview endpoint: requests preview
- Preview endpoint → Optimized files: serves file
- Optimization page → Download endpoints: requests ZIP