YTPTube is a web-based GUI for yt-dlp that makes downloading YouTube videos simple through your browser. This guide shows you how to install YTPTube on Ubuntu Linux using Docker and configure it to ensure it stays update including how to download videos with proper codec selection, subtitle integration, and automated folder organisation.
Table of Contents
YTPTube Features
Downloads:
- Multi-download and queue support
- Live streams and scheduled stream handling
- Per-link options and download limits
- Powerful presets system with media server templates
Interface:
- Dual mode (technical/simple views)
- Built-in file browser and video player
- External subtitle support
Automation:
- Schedule channel/playlist downloads
- Custom feed creation for non-supported sites
- Conditions-based custom options
- Apprise notifications (50+ services)
Integration:
- Browser extensions and bookmarklets
- iOS shortcuts support
- Basic authentication
Docker Benefits:
- Auto-updates (yt-dlp and packages)
- curl-cffi support
- Bundled PO Token provider
Prerequisites
You need Docker and Docker Compose installed on your Ubuntu system. If you don’t have them, follow our Docker and Portainer installation guide.
Quick install:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER
Install YTPTube
Method 1: Docker Compose (Recommended)
Create a directory for YTPTube:
mkdir -p ~/ytptube cd ~/ytptube
Create compose.yaml file:
nano compose.yaml
Add this configuration:
services:
ytptube:
user: "${UID:-1000}:${UID:-1000}"
image: ghcr.io/arabcoders/ytptube:latest
container_name: ytptube
restart: unless-stopped
ports:
- "8081:8081"
volumes:
- ./config:/config:rw
- ./downloads:/downloads:rw
tmpfs:
- /tmp
Important: Change 1000:1000 to match your user ID and group ID. Find yours with:
id
Save and exit (Ctrl+X, Y, Enter).
Start YTPTube:
mkdir -p ./{config,downloads}
docker compose up -d
Method 2: Docker Run
Quick one-line installation:
mkdir -p ./{config,downloads} && docker run -d --rm --user "$UID:${GID-$UID}" --name ytptube -p 8081:8081 -v ./config:/config:rw -v ./downloads:/downloads:rw ghcr.io/arabcoders/ytptube:latest
Access YTPTube: Open browser to http://localhost:8081 or http://YOUR_SERVER_IP:8081
Configure Download Preset
- Open YTPTube interface
- Click Presets → Add New Preset
- Fill in:
- Name: Plex Downloads
- Command options:
yt-dlp -S codec:h265 -f bestvideo*+bestaudio/best --write-subs --sub-langs en --convert-subs srt -o %(uploader)s/%(title)s/%(title)s.%(ext)s
- Click Save
This preset downloads videos with H.265 codec, English subtitles, organised by channel and video name. Full guide on the commands here.
Download Your First Video
- In YTPTube, click Add Download
- Paste YouTube URL
- Select Plex Downloads preset
- Click Download
YTPTube will download the video to ~/ytptube/downloads/files/ organised like:
Channel Name/
└── Video Title/
├── Video Title.mp4
└── Video Title.en.srt
Schedule Automatic Downloads
To automatically download new videos from channels:
- Click Tasks → Add New Task
- Configure:
- Name: Daily Tech Videos
- URL:
https://www.youtube.com/@channel/videos - Schedule:
0 3 * * *(3 AM daily) - Preset: Plex Downloads
- Auto-start: Yes
- Click Save
YTPTube checks the channel daily and downloads new videos automatically.
Integrate with Plex
If you’re using Plex, update compose.yaml to download directly to your Plex library:
volumes: - ./config:/config:rw - /mnt/plex/YouTube:/downloads:rw
Replace /mnt/plex/YouTube with your Plex media path.
Restart YTPTube:
docker compose down docker compose up -d
Set up your Plex library following our Plex repository guide.
Update YTPTube
cd ~/ytptube docker compose pull docker compose up -d
YTPTube auto-updates yt-dlp on container restart.
Next Steps
- Learn yt-dlp commands for advanced usage
- Check yt-dlp installation guide for command-line use
- Explore Docker home lab apps
That’s it, Enjoy!
