YTPTube
YTPTube is a self-hosted web interface and download manager for yt-dlp. It queues one-off URLs, playlists, channels and live streams, checks sources on a schedule with Tasks, stores reusable yt-dlp options as Presets and applies them by metadata with Conditions. It sends notifications through Apprise or webhooks, writes Kodi-style NFO sidecars for media libraries, and has a file browser, a built-in player, an HTTP API and browser extensions.
YTPTube
In Development
This script is currently in active development and may be unstable or incomplete. Use in production environments is not recommended.
This script is currently in active development and may be unstable or incomplete. Use in production environments is not recommended.
Installation
Default install:
1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/ct/ytptube.sh)"
Notes
There is no default login. The first visitor to the web UI creates the admin account, so open it right after the install. To reset a password, stop the service and run: cd /opt/ytptube && YTP_CONFIG_PATH=/opt/ytptube_data/config .venv/bin/python -m app.scripts.reset_password --username </div> </div>
Downloads are saved to /opt/ytptube_data/downloads (YTP_DOWNLOAD_PATH in /etc/systemd/system/ytptube.service). To store them on a NAS or share them with Plex, Jellyfin or Emby, bind-mount the media folder there, e.g. pct set [CTID] -mp0 /mnt/media/youtube,mp=/opt/ytptube_data/downloads, then restart the container. In an unprivileged container the host folder must be writable by UID 100000.
Extra settings (YTP_* variables from the FAQ) go in /opt/ytptube_data/config/.env; the database, presets and logs live in the same folder. Everything under /opt/ytptube_data survives updates. yt-dlp is refreshed on every service start (YTP_YTDLP_AUTO_UPDATE).
The PO-token provider (bgutil) that the Docker image bundles is not installed. YouTube works without it, because yt-dlp solves its challenges with the installed deno, but the log shows a bgutil warning. To use a provider, run it elsewhere and add --extractor-args "youtubepot-bgutilhttp:base_url=http://:4416" to a preset.</div> </div> ## Web Interface## Links - [Official Website](https://github.com/arabcoders/ytptube) - [Documentation](https://github.com/arabcoders/ytptube/blob/master/FAQ.md) ---