Short Introduction
YTPTube is a powerful, user-friendly, self-hosted frontend for yt-dlp
wrapped in a Docker container. It’s a complete rewrite of MeTube with a focus on automation, flexibility, and usability for both technical and non-technical users. It offers advanced scheduling, concurrent downloads, cookies support, ARM64 builds, browser extensions, and more—making it ideal for YouTube archiving, automation, and content downloading at scale.
Simplified One-Line Flowchart
Pull Docker ➔ Choose UI Mode ➔ Configure Presets/Proxies ➔ Schedule or Download ➔ Auto-Update & Enjoy
Easy Step-by-Step Method
Step 1: Clone or Deploy YTPTube
- GitHub Repo with instructions and Docker image:
https://github.com/arabcoders/ytptube
Step 2: Choose Between Basic and Advanced UI Modes
- Use Advanced Mode for full features.
- Use Basic Mode for simplified access (great for sharing with family/friends):
https://github.com/arabcoders/ytptube?tab=readme-ov-file#basic-mode
Step 3: Use Presets, CLI Options, and Cookies
- Supports per-link CLI flags.
- Add reusable presets (like
-t mp3
) for repetitive tasks. - Supports browser-based cookie pasting to bypass YouTube restrictions.
- Handles age-restricted content flawlessly.
Step 4: Automate Your Workflows
- Queue playlists or channels on a schedule.
- Requeue upcoming livestreams or premieres automatically based on
live_in
metadata.
Step 5: Add Browser Extensions & iOS Shortcuts
- Works with Firefox, Chromium-based browsers, and iOS Shortcuts.
- These connect to your hosted instance for quick video grabbing.
Preview UI: https://files.catbox.moe/lbztzp.png
Step 6: Audio-Only? Convert to MP3 Easily
- Use CLI option
-t mp3
or set it as a preset. - Makes audio downloads simple for music lovers.
Step 7: Use on ARM64 Devices
- As of latest release, ARM64 builds are available.
master
builds supportlinux/arm64
;dev
builds remainamd64
only.
Step 8: Proxy Support & Cookie Expiry Workarounds
- Proxies like Squid can bypass blocked OVH IPs.
- Environment variable
HTTP_PROXY
works similarly to MeTube’s proxy handling.
Step 9: Configure for Read-Only Systems (Optional)
- Yes, YTPTube supports rootless operation and can run in read-only mode if:
/config
,/tmp
, and/downloads
are mounted as writable volumes- Auto-update is disabled via ENV
Quick Tips
Rapid Fix Cycle: Bugs are often fixed within minutes.
Auto yt-dlp Updates: Pulls latest version on every container start (can be disabled).
Basic Auth Available: Protect your instance with username/password.
Display Modes: Use “List View” for a compact history layout.
JSON Conversion: Input URLs are internally converted into JSON-compatible instructions for yt-dlp.
Bundled Tools: Includes
ffmpeg
,aria2
,mkvtoolsnix
,rtmpdump
, and more inside the container.Simple File Browser: Can be enabled for browsing downloaded files directly from the web UI.
Important Notes
No Raw CLI or cURL Commands: For safety, users cannot input raw shell commands into the UI.
Writable Folders Required: Minimum write access to
/config
,/tmp
, and/downloads
is mandatory.Not All Features in Basic Mode: Designed to be simple; advanced options are hidden.
Livestream Support: Only tested on YouTube (not Twitch or others yet).
Custom Update Paths: Auto-updater can be disabled if using read-only containers.
ARM64 Caution: Python package install is slower; thus, dev builds don’t support ARM64 yet.
Roadmap Insight: More UI improvements and performance tweaks are in development; check
dev
branch regularly.
Useful Links
Main Repo: https://github.com/arabcoders/ytptube
yt-dlp Docs: https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#impersonation
Latest Release: https://github.com/arabcoders/ytptube/releases/tag/master-20250603-cf2fb5f
Watchstate Project (by same dev): https://github.com/arabcoders/watchstate