← all projects
Youtube-Video-Downloader
Android video/audio downloader — Compose UI, foreground download service, yt-dlp engine via Chaquopy.
KotlinComposeRoom
High-level design
A single-Activity Compose app built around a foreground service, since downloads have to survive the user leaving the screen.
Compose UI
single-Activity, observes download state
↓
foreground download service
keeps the download alive, shows live progress in the notification
↓
Room-backed download library
persists what's been downloaded and its state
↓
yt-dlp via Chaquopy
the extraction engine, embedded as Python running on-device
Low-level design
The interesting constraint here is running a Python engine (yt-dlp) inside an Android process via Chaquopy.
- –Download state survives process death via the Room-backed queue, not an in-memory list