samiul@portfolio:~/projects/mixtape$ cat README.md

10 Mixtape

[mobile] [kotlin] [updated 2026-08] [release v1.0.0]

Download YouTube playlists on your phone, tagged and filed. yt-dlp and ffmpeg run in-app.

samiul@portfolio:~/projects/mixtape$ cat problem.txt

Moving a playlist off YouTube normally needs a PC, a server, or an upload step. The goal was on-phone downloading: private, tagged, and filed into the media library.

samiul@portfolio:~/projects/mixtape$ cat build.log

A native Android app (Kotlin + Jetpack Compose) with yt-dlp and ffmpeg running in-app on arm64, armv7 and x86_64. Paste a playlist link and every track lists in seconds; pick any subset and three workers stream-copy YouTube's own m4a (transcoding only when there isn't one), embed tags and cover art, and write through MediaStore so every player finds them. The queue survives app kills, a per-track watchdog fails hung downloads, and yt-dlp updates in-app when YouTube breaks extraction.

samiul@portfolio:~/projects/mixtape$ cat highlights.txt

  • yt-dlp + ffmpeg in-app: no server, nothing leaves the phone
  • Stream-copies m4a; transcodes only when it has to
  • Tags and cover art embedded, files land in MediaStore
  • Queue survives app kills; watchdog and one-tap retry
  • In-app yt-dlp update for when YouTube breaks things

samiul@portfolio:~/projects/mixtape$ cat stack.toml

# mixtape

lang = "kotlin, jetpack compose"

engine = "bundled yt-dlp + ffmpeg"

abis = "arm64-v8a, armeabi-v7a, x86_64"

audio = "m4a stream-copy, tags + cover art"

queue = "persistent, watchdog, retry"

stack = ["Kotlin", "Jetpack Compose", "yt-dlp", "ffmpeg"]

samiul@portfolio:~/projects/mixtape$ git remote -v

interactive shell: try help, ls, open 04, phosphor amber

SH‑TERM  ▚  MODEL 2026