wrolpi/modules
Roland 4b9593580d
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled
fix: a video download requests one format, not every matching format
The yt-dlp `-f` selector was built by joining every selector of every
requested resolution with a comma.  In yt-dlp a comma means "download all
of these formats"; `/` is the fallback operator.  The resolution map is
ordered best-to-worst and its entries already use `/` internally, so the
comma was never the intent.

With the default resolutions this handed yt-dlp ~45 comma-separated
selectors and asked it to download every one that matched.  A 720p video
matched 8 of them (including duplicates, which yt-dlp does not dedupe), so
the whole per-download pipeline ran 8 times against the same output path:
subtitles downloaded, thumbnail downloaded, info.json written, subtitles
converted, thumbnail converted, existing subtitles deleted, repeat.  The
duplicate work was invisible because each pass overwrites the last.

Join with `/` so the resolution list behaves as the preference chain it
reads as.
2026-08-05 17:25:19 -06:00
..
archive Remove stale Postgres references after SQLite cutover. 2026-07-18 13:28:54 -06:00
docs Make doc_modeler resilient to SQLite "database is locked" 2026-07-20 13:44:27 -06:00
flasher Flasher: chip-mismatch guard, WROLPi firmware table, colorblind chip colors 2026-07-02 17:26:37 -06:00
inventory Strip whitespace from inventory item string values on save 2026-07-30 17:34:46 -06:00
map Migrating map downloaders. 2026-05-07 15:54:53 -06:00
videos fix: a video download requests one format, not every matching format 2026-08-05 17:25:19 -06:00
zim zim: address PR review — config race, YAML null, path traversal, pinned build 2026-07-20 19:10:09 -06:00
__init__.py Move One-Time Pad encryption to the browser (#479) 2026-06-13 13:52:34 -06:00