media_manager
A self-hosted web app that downloads, converts and compresses media, then cleans up after itself.
Project overview
media_manager bundles three tools in one container: downloading video or audio from YouTube and the other sites yt-dlp supports, transcoding uploads with ffmpeg, and compressing files to a target size. Size-targeted video compression picks a resolution and frame rate the target bitrate can actually support, then re-encodes if the result is still too large. There are no accounts and no database; every file is transient and is deleted automatically after a retention window.
What it does
Download and convert
- Video or audio downloads via yt-dlp, up to 4K
- Transcoding between formats such as MKV, MP4, MP3 and OGG
Compress to a target size
- Resolution and frame rate chosen to fit the target bitrate
- Image compression and merging of separate audio tracks
Self-hosted and transient
- One container with an in-memory job queue and real progress
- Files deleted automatically after the retention window
Technologies & implementation
Technology stack
- Rust · Axum
- TypeScript · React · Vite
- yt-dlp · ffmpeg · ffprobe
- Docker · GitHub Container Registry
- GitHub Actions CI