#!/bin/bash # Upgrade gallery-dl and its injected yt-dlp (both pipx). Instagram changes its # endpoints often and gallery-dl follows within days -- 1.32.17 (2026-10-17) # "update user & posts query parameters" landed while we were still on 1.32.14 # and the posts listing silently returned "No results". # # Called by gdl-cron.sh before every scrape and weekly by gdl-upgrade.timer. # Never fatal: a failed upgrade (offline, PyPI down) must not stop a stories # run, which cannot be backfilled -- it just scrapes with what is installed. # Costs no Instagram requests (PyPI only). set -u PATH="$HOME/.local/bin:$PATH"; export PATH VENV_PY="${GDL_VENV_PY:-$HOME/.local/share/pipx/venvs/gallery-dl/bin/python}" versions() { printf 'gallery-dl %s, yt-dlp %s' \ "$(gallery-dl --version 2>/dev/null || echo '?')" \ "$("$VENV_PY" -c 'import yt_dlp; print(yt_dlp.version.__version__)' 2>/dev/null || echo '?')" } before=$(versions) if ! timeout 180 pipx upgrade --quiet --include-injected gallery-dl >/dev/null 2>&1; then echo "upgrade: WARNING pipx upgrade failed; continuing with $before" >&2 exit 0 fi after=$(versions) if [ "$before" = "$after" ]; then echo "upgrade: up to date ($after)" else echo "upgrade: CHANGED $before -> $after" fi