← all projects

Youtube-Video-Downloader

Android video/audio downloader — Compose UI, foreground download service, yt-dlp engine via Chaquopy.

View on GitHub ↗Kotlinupdated 3d ago

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