EverDownload
EverDownload is a Go web app that downloads videos from 1000+ platforms using yt-dlp and ffmpeg. Metadata is Redis-cached for fast repeat lookups. No external APIs.
Install / Use
/learn @samueltuoyo15/EverDownloadREADME
EverDownload: Universal Video Downloader
EverDownload is a Go web app that downloads videos from 1000+ platforms using yt-dlp and ffmpeg. Metadata is Redis-cached for fast repeat lookups. No external APIs.
<img src="/public/demo.png" alt="EverDownload Demo">Stack
- Go: concurrent backend
- yt-dlp + ffmpeg: video extraction and format merging
- Redis: metadata caching (10 min TTL)
- Docker + Docker Compose: containerised deployment
- Vanilla JS: frontend (no framework)
Supported Platforms
YouTube, TikTok, Instagram, Twitter/X, Reddit, Twitch, Vimeo, Facebook, Bilibili, Rumble, Kick, LinkedIn, Snapchat, Pinterest, Threads, Discord, and 1000+ more via yt-dlp.
Getting Started
git clone https://github.com/samueltuoyo15/EverDownload.git
cd EverDownload
docker compose up --build -d
Open http://localhost:8080.
Running Without Docker
Requires Go 1.24+, yt-dlp, ffmpeg, and a running Redis instance.
go run ./cmd/server/
Environment Variables
| Variable | Default | Description |
|---|---|---|
| REDIS_URL | redis://localhost:6379 | Redis connection URL |
| PORT | 5000 | Server port |
Project Structure
cmd/server/main.go entry point
internal/
formats/formats.go format parsing and labeling
cache/cache.go Redis wrapper
ytdlp/ytdlp.go yt-dlp process runner
handlers/
info.go POST /api/info
download.go GET /download
utils/allowed.hosts.go URL allowlist
templates/index.html frontend
static/style.css styles
Contributing
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature - Commit:
git commit -m "feat: your change" - Push and open a Pull Request
License
MIT: see LICENSE.
Author
Samuel Tuoyo
- LinkedIn: samuel-tuoyo
- X: @TuoyoS26091
