Jellyfin Docker image with yt-dlp, for seamless FinTube integration and other extensions
10K+
dotwee/jellyfin-yt-dlpJellyfin Docker image with yt-dlp preinstalled, for seamless FinTube integration and other extensions.
linux/amd64, linux/arm64docker pull dotwee/jellyfin-yt-dlp:latest
# or for unstable
# docker pull dotwee/jellyfin-yt-dlp:unstable
docker run -d \
--name jellyfin \
-p 8096:8096 \
-v /path/to/config:/config \
-v /path/to/media:/media \
dotwee/jellyfin-yt-dlp:latest
All standard Jellyfin environment variables are supported. See Jellyfin docs.
This image comes with a pre-configured yt-dlp setup optimized for Jellyfin usage.
The container includes a default configuration file at /etc/yt-dlp.conf with the following settings:
/usr/lib/jellyfin-ffmpeg/ffmpeg%(uploader)s/%(title)s.%(ext)sTo override the default configuration, mount your custom config file to one of these locations:
User config directory (recommended):
# Create your custom config file
mkdir -p /path/to/config/.config/yt-dlp
echo "--format best[height<=720]" > /path/to/config/.config/yt-dlp/config
# Mount it in the container
docker run -d \
--name jellyfin \
-v /path/to/config:/config \
dotwee/jellyfin-yt-dlp:latest
System-wide override:
# Mount your custom config file
docker run -d \
--name jellyfin \
-v /path/to/your/yt-dlp.conf:/etc/yt-dlp.conf:ro \
dotwee/jellyfin-yt-dlp:latest
yt-dlp searches for configuration files in this order:
/config/.config/yt-dlp/config (user-specific, recommended for customization)/etc/yt-dlp.conf (system-wide default)# Example: /path/to/config/.config/yt-dlp/config
# Use Jellyfin's ffmpeg (required)
--ffmpeg-location /usr/lib/jellyfin-ffmpeg/ffmpeg
# Custom output template
--output "/media/downloads/%(uploader)s - %(title)s.%(ext)s"
# Lower quality for storage savings
--format "best[height<=720]"
# Skip subtitles
--no-embed-subs
# Custom rate limit
--limit-rate 10M
# Archive to prevent re-downloading
--download-archive /config/yt-dlp-archive.txt
--ffmpeg-location /usr/lib/jellyfin-ffmpeg/ffmpeg in your config/media/, /config/)/config/ to persist across container restartsJELLYFIN_VERSION (default: latest): Jellyfin version or unstable for nightlydocker build --build-arg JELLYFIN_VERSION=latest -t jellyfin-yt-dlp:latest .
docker build --build-arg JELLYFIN_VERSION=unstable -t jellyfin-yt-dlp:unstable .
yt-dlp and ffmpeg on startup and for healthchecks.This repository is set up for automated builds and publishing via GitHub Actions:
.github/workflows/docker-image-ci.yml for details.jellyfinuser). Ensure your mounted volumes are accessible.yt-dlp is up to date./usr/lib/jellyfin-ffmpeg/ffmpeg/config/.config/yt-dlp/config# Check yt-dlp version and config
docker exec jellyfin yt-dlp --version
# Test yt-dlp with a simple video
docker exec jellyfin yt-dlp --dry-run "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
# Check current configuration
docker exec jellyfin yt-dlp --help | head -20
Copyright (c) 2025 Lukas 'dotWee' Wolfsteiner [email protected]
Licensed under the do what the fuck you want to public license
Content type
Image
Digest
sha256:d8de403ca…
Size
911.7 MB
Last updated
about 5 hours ago
docker pull dotwee/jellyfin-yt-dlp:12.0-rc2