All apps · 0 apps
fetchly
Docker app from GillBates' Repository
Overview
Readme
View on GitHub
Self-hosted media downloader for YouTube, TikTok, Instagram & Facebook.
Paste a link, preview it, pick a format — with a live job dashboard, waveform audio trimming, BPM analysis, and Lalal.ai stem separation.

Dashboard — paste a link, preview the media, pick a format, and track every job live.

Authenticated login with invisible, server-verified anti-bot protection.
Download, shape, share
fetchly turns yt-dlp into a self-hosted media workspace. Pick formats in a web UI,
follow every job live, trim audio visually, find its tempo, create stems, and share
finished downloads without handing your media to another service.
Features
| Feature | What you get |
|---|---|
| Download everywhere | Save video or audio from YouTube, TikTok, Instagram, and Facebook in one place. |
| Stay in control | Follow every queued, active, completed, or failed job from a live dashboard. |
| Choose your quality | Pick the format and quality you want, then let fetchly handle the conversion. |
| Brand every video | Burn the fetchly logo — or your own uploaded SVG or PNG — and your hostname, once set, into the corner of every downloaded video, or switch it off. |
| Trim with precision | Cut audio visually with an interactive waveform before you download or process it further. |
| Find the tempo | Analyze BPM and beat confidence, then use the result to guide audio trimming. |
| Create clean stems | Connect Lalal.ai to separate vocals and instrumentals when you need production-ready tracks. |
| Share what you made | Send friends and family a share link to a finished download — no account needed on their side, with an optional limit on how many times it can be used. |
| Keep it private | Run everything yourself with persistent storage, authentication, CSRF protection, anti-bot checks, and login rate limiting. |
| Ready to run | Get the complete application and its required dependencies in one Docker image. |
Supported platforms
| Platform | Video | Audio | |
|---|---|---|---|
| YouTube | ✅ | ✅ | |
| TikTok | ✅ | ✅ | |
| ✅ | ✅ | ||
| ✅ | ✅ |
Note: Public URLs work without account cookies. Age- or login-gated content may work after importing a current signed-in session under Settings → Integrations; platforms can still reject stale or revoked sessions.
Quickstart
Docker is the recommended way to run fetchly. The image (Docker Hub) bundles ffmpeg, yt-dlp, yt-dlp-ejs, and deno — nothing else to install.
Docker Compose
# compose.yaml
services:
fetchly:
image: giiibates/fetchly:latest
container_name: fetchly
restart: unless-stopped
ports:
- "8000:8000"
environment:
FETCHLY_SECRET_KEY: ${FETCHLY_SECRET_KEY:?generate with: openssl rand -base64 32}
volumes:
- ./data:/app/data
export FETCHLY_SECRET_KEY="$(openssl rand -base64 32)"
docker compose up -d
A fuller compose file with logging, timezone, and reverse-proxy notes lives in docker/docker-compose.yml.
Open http://127.0.0.1:8000, then create an admin account in Settings → Security before exposing fetchly beyond your local machine.
Learn more
The fetchly documentation covers installation, configuration, reverse proxies, security, platform cookies, the API, and troubleshooting.
Install Fetchly on Unraid in a few clicks.
Find Fetchly in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
giiibates/fetchly:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8000]- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--restart unless-stopped
Template configuration
REQUIRED: Signs session cookies. Generate with: openssl rand -base64 32. The app refuses to start without this.
- Target
- FETCHLY_SECRET_KEY
REQUIRED: Password for the admin login.
- Target
- FETCHLY_ADMIN_PASSWORD
Admin login username
- Target
- FETCHLY_ADMIN_USER
- Default
- admin
Set to '1' when serving over HTTPS (e.g. behind a reverse proxy) so session cookies are marked Secure
- Target
- FETCHLY_BEHIND_HTTPS
- Default
- 0
Verbosity of the container logs. Default: INFO. Use DEBUG only for troubleshooting - it is noisy.
- Target
- LOG_LEVEL
- Default
- INFO|DEBUG|WARNING|ERROR|CRITICAL
- Value
- INFO
Container timezone (IANA name, e.g. Etc/UTC or Europe/Berlin), used for timestamps in the UI and logs
- Target
- TZ
- Default
- Etc/UTC
fetchly Web UI/API port
- Target
- 8000
- Default
- 8000
Jobs, SQLite database, and downloads
- Target
- /app/data
- Default
- /mnt/user/appdata/fetchly/data