Skip to content

fix(yt-dlp): actually upgrade via uv + daily refresh + retry-on-failure#1

Merged
UberKitten merged 1 commit into
mainfrom
fix/yt-dlp-update
Jun 19, 2026
Merged

fix(yt-dlp): actually upgrade via uv + daily refresh + retry-on-failure#1
UberKitten merged 1 commit into
mainfrom
fix/yt-dlp-update

Conversation

@UberKitten

Copy link
Copy Markdown
Owner

Problem

/add started failing with HTTP 403 Forbidden + "yt-dlp version (2026.03.17) is older than 90 days." YouTube blocks stale yt-dlp.

Root cause

Every update path ran yt-dlp --update, which is a no-op for PyPI/uv wheel installs (it only updates the standalone binary). So yt-dlp could never actually upgrade — frozen at whatever the lock resolved at build time (2026.03.17). The 6h scheduled refresh and the pre-download "update" were both silently doing nothing.

Fix

  • update_ytdlp(): use uv pip install --upgrade yt-dlp (actually works for wheels)
  • Dockerfile: same fix at build time; dropped || true so a failed fetch fails the build instead of shipping an old version
  • app.py: scheduled refresh 6h → 24h (once daily, per design)
  • download(): removed the unconditional pre-download update; now retries once with a fresh yt-dlp only when a download fails — so normal downloads pay no update latency, but a 403-from-staleness self-heals

Status

Production container already hotfixed in-place (uv pip install --upgrade yt-dlp → 2026.06.09); the target video downloads again. This PR makes the fix durable across rebuilds.

yt-dlp was frozen at 2026.03.17 because every update path ran
`yt-dlp --update`, which is a no-op for PyPI/uv wheel installs. YouTube
now 403s that stale version, breaking downloads.

- update_ytdlp(): use `uv pip install --upgrade yt-dlp` (works for wheels)
- Dockerfile: same fix at build time, drop `|| true` so a fetch failure
  fails the build instead of silently shipping an old version
- app.py: scheduled refresh 6h -> 24h (once daily)
- download(): drop the unconditional pre-download update; instead retry
  once with a fresh yt-dlp only when a download fails
@UberKitten UberKitten merged commit 1d2d65d into main Jun 19, 2026
1 check passed
@UberKitten UberKitten deleted the fix/yt-dlp-update branch June 19, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant