From 36e1dfeb74497a8d7970748146e5ae88a05eb1a3 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 19 Aug 2026 22:23:58 +0200 Subject: [PATCH] fix: bgutil POT provider --- ct/tubearchivist.sh | 38 ++++++++++++++++++++++++++++-- install/tubearchivist-install.sh | 40 +++++++++++++++++++++++++++++--- 2 files changed, 73 insertions(+), 5 deletions(-) diff --git a/ct/tubearchivist.sh b/ct/tubearchivist.sh index 099e42373..e833c6abc 100644 --- a/ct/tubearchivist.sh +++ b/ct/tubearchivist.sh @@ -30,9 +30,34 @@ function update_script() { exit fi + if [[ ! -f /etc/systemd/system/bgutil-provider.service ]]; then + msg_info "Adding BgUtil POT Provider" + fetch_and_deploy_gh_release "bgutil-ytdlp-pot-provider" "Brainicism/bgutil-ytdlp-pot-provider" "tarball" + cd /opt/bgutil-ytdlp-pot-provider/server + $STD npm ci + $STD npx tsc + cat </etc/systemd/system/bgutil-provider.service +[Unit] +Description=BgUtil YT-DLP POT Provider +After=network.target + +[Service] +Type=simple +WorkingDirectory=/opt/bgutil-ytdlp-pot-provider/server +ExecStart=/usr/bin/node build/main.js +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF + systemctl enable -q --now bgutil-provider + msg_ok "Added BgUtil POT Provider" + fi + if check_for_gh_release "tubearchivist" "tubearchivist/tubearchivist"; then msg_info "Stopping Services" - systemctl stop tubearchivist tubearchivist-celery tubearchivist-beat + systemctl stop bgutil-provider tubearchivist tubearchivist-celery tubearchivist-beat msg_ok "Stopped Services" create_backup /opt/tubearchivist/.env @@ -53,8 +78,17 @@ function update_script() { mkdir -p /opt/yt_plugins/bgutil $STD uv pip install --python /opt/tubearchivist/.venv/bin/python --target /opt/yt_plugins/bgutil -r /opt/tubearchivist/backend/requirements.plugins.txt fi + $STD uv pip install --python /opt/tubearchivist/.venv/bin/python -U --prerelease allow "yt-dlp[default]" msg_ok "Rebuilt Tube Archivist" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bgutil-ytdlp-pot-provider" "Brainicism/bgutil-ytdlp-pot-provider" "tarball" + + msg_info "Rebuilding BgUtil POT Provider" + cd /opt/bgutil-ytdlp-pot-provider/server + $STD npm ci + $STD npx tsc + msg_ok "Rebuilt BgUtil POT Provider" + msg_info "Restoring Configuration" sed -i 's|^TA_APP_DIR=/opt/tubearchivist$|TA_APP_DIR=/opt/tubearchivist/backend|' /opt/tubearchivist/.env sed -i 's|^TA_CACHE_DIR=/opt/tubearchivist/cache$|TA_CACHE_DIR=/cache|' /opt/tubearchivist/.env @@ -65,7 +99,7 @@ function update_script() { msg_ok "Restored Configuration" msg_info "Starting Services" - systemctl start tubearchivist tubearchivist-celery tubearchivist-beat + systemctl start bgutil-provider tubearchivist tubearchivist-celery tubearchivist-beat systemctl reload nginx msg_ok "Started Services" msg_ok "Updated successfully!" diff --git a/install/tubearchivist-install.sh b/install/tubearchivist-install.sh index 0ab17f314..a1184d6e0 100644 --- a/install/tubearchivist-install.sh +++ b/install/tubearchivist-install.sh @@ -25,7 +25,13 @@ $STD apt install -y \ libsasl2-dev \ libssl-dev \ sqlite3 \ - ffmpeg + ffmpeg \ + libcairo2-dev \ + libpango1.0-dev \ + libjpeg-dev \ + libgif-dev \ + librsvg2-dev \ + pkg-config msg_ok "Installed Dependencies" UV_PYTHON="3.13" setup_uv @@ -33,6 +39,14 @@ NODE_VERSION="24" setup_nodejs fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip" +fetch_and_deploy_gh_release "bgutil-ytdlp-pot-provider" "Brainicism/bgutil-ytdlp-pot-provider" "tarball" + +msg_info "Building BgUtil POT Provider Server" +cd /opt/bgutil-ytdlp-pot-provider/server +$STD npm ci +$STD npx tsc +msg_ok "Built BgUtil POT Provider Server" + msg_info "Installing ElasticSearch" setup_deb822_repo \ "elastic-8.x" \ @@ -116,6 +130,10 @@ EOF systemctl enable -q --now redis-server msg_ok "Set up Tube Archivist" +msg_info "Installing yt-dlp Nightly" +$STD uv pip install --python /opt/tubearchivist/.venv/bin/python -U --prerelease allow "yt-dlp[default]" +msg_ok "Installed yt-dlp Nightly" + msg_info "Configuring Nginx" sed -i 's/^user www-data;$/user root;/' /etc/nginx/nginx.conf cat <<'EOF' >/etc/nginx/sites-available/default @@ -230,10 +248,26 @@ exec $PYTHON backend_start.py RUNEOF chmod +x /opt/tubearchivist/backend/run.sh ln -sf /opt/tubearchivist/.env /opt/tubearchivist/backend/.env +cat </etc/systemd/system/bgutil-provider.service +[Unit] +Description=BgUtil YT-DLP POT Provider +After=network.target + +[Service] +Type=simple +WorkingDirectory=/opt/bgutil-ytdlp-pot-provider/server +ExecStart=/usr/bin/node build/main.js +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF + cat </etc/systemd/system/tubearchivist.service [Unit] Description=Tube Archivist Backend -After=network.target elasticsearch.service redis-server.service +After=network.target elasticsearch.service redis-server.service bgutil-provider.service [Service] Type=simple @@ -286,7 +320,7 @@ RuntimeMaxSec=3600 [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now tubearchivist tubearchivist-celery tubearchivist-beat +systemctl enable -q --now bgutil-provider tubearchivist tubearchivist-celery tubearchivist-beat msg_ok "Created Services" motd_ssh