A video and audio downloader that runs on your own machine, protected by a password, with files automatically deleted after 6 hours.

You open a page on your VPS, paste the URL, choose video or audio, and get the file. Under the hood, it’s the same old yt-dlp — the difference is that you don’t need a terminal, and the download comes from a trusted residential IP instead of your phone.
The interface is a PWA: install it on your home screen, sign in once with the password, and it never asks you to log in again. No app, no app store.
Every downloaded file is deleted 6 hours later, and a cleanup scan also removes leftovers from failed downloads. The VPS doesn’t become a storage bin.
You upload your signed-in browser’s cookies through the interface. That’s what prevents the “Sign in to confirm you're not a bot” message that blocks data center IPs.
A single process: FastAPI serves the interface and API, and a worker processes the queue one job at a time — deliberately, to avoid rate limits from the source. Caddy handles HTTPS.
The queue is serial. Two simultaneous downloads would only increase the chance of getting blocked by the source.
It failed, so you queue it again. Retrying automatically against a source that blocked you just burns through the IP faster.
Delivery supports Range, so if your phone loses signal, the download picks up where it left off — that's why there's a TTL instead of deleting the file after the first download.
A Linux VPS with Docker and a subdomain pointed to it. Nothing else — ffmpeg and yt-dlp are included in the image.
It's the only software requirement on the VPS.
# Ubuntu curl -fsSL https://get.docker.com | sh
Point an A record to the VPS IP before before starting: Caddy issues the certificate on the first visit.
# example dlp.seudominio A 203.0.113.10
On your PC or phone, signed in to the sources you download from. That’s where the cookies come from.
# extension (Edge/Chrome) Get cookies.txt LOCALLY
There are five steps. Starting with the third, you’re already using it on your phone.
It generates the three secrets, writes the .env with the right permission, it starts the containers and prints your password at the end.
git clone https://github.com/inematds/inemadlp.git && cd inemadlp ./instalar.sh dlp.seudominio # warns if DNS still doesn't point here
Caddy requests the certificate on the first visit — 10 to 60 seconds. Prefer doing it manually instead of using the installer? The README has the manual method.
docker compose logs -f caddy # wait for "certificate obtained" curl -I https://dlp.seudominio # HTTP/2 200 = online
Open the domain, enter the password, and use "Add to Home Screen." The session doesn't expire — you log in once, and that's it.
# on your phone's browser https://dlp.seudominio
Without this, YouTube refuses: the VPS IP is from a data center. On your PC, with Edge or Chrome signed in to YouTube:
cookies.txt;cookies.txt from the Downloads folder — it gives access to your account.Redo this only when a download fails: the interface will let you know "expired cookies".
# shortcut, only on the Linux machine with Firefox logged in DLP_URL=https://dlp.seudominio DLP_UPLOAD_TOKEN=... ./sync-cookies.sh # -> {"cookies": 81}
Paste the URL, choose Video (MP4 up to 1080p) or Audio (M4A) and wait. Progress appears in the list, and the "Download" button shows up when it's done.
# the file is available for 6 hours, then it disappears # want more time? DLP_TTL_HOURS in .env
v1 is complete and verified end to end. Anything not included here was cut on purpose — this is a personal tool, not a product.