fix(backend): YouTube downloads — install Deno + pull yt-dlp nightly

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 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Opus 4.8 committed 2026-08-19 00:40:31 +02:00
1 parent cb7a3d77be
commit 593c9fdb7b
2 files changed
+18 -1

No files matched your search

+17
View File
@@ -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**
+1 -1
View File
@@ -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 &&