diff --git a/BACKLOG.md b/BACKLOG.md index e313be8..e48e66b 100755 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -36,6 +36,16 @@ bottom as they come up. - [x] Per-song notes (key / capo / arrangement cues) on playlist entries. ## Robustness +- [ ] **Cookies jar for the YouTube bot gate (deferred 2026-08-27 — not being tackled yet).** + `runYtdlpResilient()` already recovers from "Sign in to confirm you're not a bot" + by retrying against `YTDLP_FALLBACK_CLIENTS`, so saves no longer fail. The residual + cost: while the gate is active, `tv_simply`/`android_vr`/`mweb` typically expose only + progressive itag 18, so those saves land at **360p instead of 720p** (`web_embedded` + keeps the full adaptive ladder when it works). Fix would be to supply a Netscape + cookies jar so the default client stays available: the server already honours + `YTDLP_COOKIES=` when the file exists — what's missing is mounting the jar into + the container (compose volume + env) and a refresh story for when the cookies expire. + Only worth doing if 360p saves become noticeable in practice. - [x] Sanitize `video_id` in `cache_download` (reject path separators). - [x] Gate the embedded yt-dlp behind a build flag so debug builds compile faster. - [x] Surface yt-dlp extraction failures with a retry button.