A frontend to yt-dlp to download things https://dl.emersa.it
Find a file
2025-10-23 23:00:44 +00:00
.forgejo/workflows use 3.13 2025-10-18 21:12:31 +02:00
backend Use pyproject toml instead of listing deps in dockerfile 2025-10-18 23:25:54 +02:00
scripts Remove claude co authoring 2025-10-18 22:46:53 +02:00
web chore: update minor frontend dependencies 2025-10-23 23:00:44 +00:00
.gitignore bump deps 2025-10-18 20:57:48 +02:00
compose.build.yml Update build and prod scripts 2025-09-25 14:58:56 +02:00
compose.dev.yml Updates on readme and dev env 2025-09-25 14:33:17 +02:00
compose.prod.yml Add spotify env var 2025-10-18 23:26:33 +02:00
LICENSE Add LICENSE 2025-02-07 20:52:17 +01:00
README.md update README.md 2025-09-25 14:35:30 +02:00
redis.conf Absurd default redis conf 2025-09-26 12:28:42 +02:00

scaricatore

version status GNU

A distributed video/audio download application with SvelteKit frontend and FastAPI backend, using yt-dlp to download media from the web.

screen

Architecture

  • Frontend: SvelteKit 2 with Svelte 5 and TypeScript (/web)
  • Backend: FastAPI with Redis Queue and yt-dlp integration (/backend)
  • Infrastructure: Docker Compose with Redis and RQ workers

Self-Hosting

# Clone and configure
git clone git@git.pweapon.org:odo/dl.emersa.it.git
cd dl.emersa.it

# Set environment variables
export PUBLIC_VERSION="latest"
export PUBLIC_ORIGIN="https://your-domain.com"
export PUBLIC_API_URL="https://your-domain.com/api"

# Deploy with Docker Compose
docker-compose up -d

Development

For complete development environment:

# 1. Start Redis
docker compose -f compose.dev.yml up -d

# 2. Start backend (from backend directory)
cd backend
REDIS_URL=redis://localhost:6379 uv run yt_dl_rq_server.py

# 3. Start worker (separate terminal, from backend directory)
cd backend
REDIS_URL=redis://localhost:6379 uv run rq worker downloads

# 4. Start frontend (separate terminal, from web directory)
cd web
bun dev

To do:

  • fix ci when this will be closed
  • Mass/Playlist download
  • Source spotify (spotdl)
  • Fix node version settings, and typescript-eslint dep
  • Dockerfile inside the forgejo release action