From 593c9fdb7bc7d44b82c920b291cc44a925cd92cc Mon Sep 17 00:00:00 2001 From: Honey Date: Wed, 19 Aug 2026 00:40:31 +0200 Subject: [PATCH] =?UTF-8?q?fix(backend):=20YouTube=20downloads=20=E2=80=94?= =?UTF-8?q?=20install=20Deno=20+=20pull=20yt-dlp=20nightly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Downloads were 403ing on two fronts: (1) recent yt-dlp needs a JS runtime to solve YouTube's signature/nsig challenge (Deno, added in cb7a3d7), and (2) the current yt-dlp *stable* had a bug that 403'd the android_vr client on every video (yt-dlp#17456, fixed in nightly). Switch the backend from the stable yt-dlp binary to nightly via pip (`--pre 'yt-dlp[default]'`). Verified end-to-end incl. a real frontend download. No cookies / PO-token service / proxy needed. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 17 +++++++++++++++++ docker-compose.yml | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d142560..59a2d1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,23 @@ Versioning: two-part `MAJOR.MINOR` — each release bumps the minor (features an --- +## [2.2] — 2026-08-19 + +Gets YouTube downloads working again after they broke on two independent fronts. + +### Fixed +- **YouTube downloads (HTTP 403 + "Signature solving failed")** — two things had broken downloads: + 1. Recent yt-dlp needs an **external JavaScript runtime** to solve YouTube's signature/nsig + challenge — without it, formats were skipped and the media 403'd. The backend now installs + **Deno**, which yt-dlp uses automatically. + 2. A bug in the current yt-dlp **stable** 403'd the `android_vr` client on *every* video + ([yt-dlp#17456](https://github.com/yt-dlp/yt-dlp/issues/17456), fixed in nightly). The backend + now pulls yt-dlp from the **nightly** channel (`pip install --pre 'yt-dlp[default]'`). + No cookies, PO-token service, or proxy needed — the earlier 403 that looked like an IP block was + this stable bug. + +--- + ## [2.1] — 2026-08-14 Builds on the 2.0 listening archive with a **head-to-head "Musik-Match"**, brings the **artist pin** diff --git a/docker-compose.yml b/docker-compose.yml index 8dcd0e6..ad723f1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,7 +36,7 @@ services: command: > sh -c " apt-get update && apt-get install -y --no-install-recommends python3 python3-pip ffmpeg curl git unzip && rm -rf /var/lib/apt/lists/* && - curl -sL https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && chmod a+rx /usr/local/bin/yt-dlp && + pip install --break-system-packages -U --pre 'yt-dlp[default]' && curl -fsSL https://deno.land/install.sh | sh && pip install --break-system-packages spotapi 'git+https://github.com/TzurSoffer/spotify-downloader' && mkdir -p /deps && cd /deps && npm install express kuromoji &&