feat(playlist): exact-format-per-item selection #9

Merged
debont80 merged 2 commits from feat/playlist-per-item-format into main 2026-07-02 17:06:44 -04:00
Owner

Summary

  • Each video row in the playlist panel gets an exact-format button that lazily probes just that entry's URL (reuses the existing single-video probe IPC - no new main-process code) and shows a native Select of that entry's real formats.
  • The pick is carried as a ChosenFormat and flows through addMany -> formatId per queue item.
  • Probing is on-demand per row, never all up front, since a playlist can hold thousands of entries and per-entry probes are rate-limited.
  • Flipping a row to audio drops its per-item format override.

Test plan

  • typecheck (node+web)
  • 378 unit tests pass (+6 new in test/playlistEntries.test.ts)
  • eslint clean
  • production build succeeds
  • verified end-to-end in the preview harness: mixed batch (exact format / flipped-to-audio / preset fallback) mapped correctly per entry
## Summary - Each video row in the playlist panel gets an exact-format button that lazily probes just that entry's URL (reuses the existing single-video `probe` IPC - no new main-process code) and shows a native Select of that entry's real formats. - The pick is carried as a `ChosenFormat` and flows through `addMany` -> `formatId` per queue item. - Probing is on-demand per row, never all up front, since a playlist can hold thousands of entries and per-entry probes are rate-limited. - Flipping a row to audio drops its per-item format override. ## Test plan - [x] typecheck (node+web) - [x] 378 unit tests pass (+6 new in test/playlistEntries.test.ts) - [x] eslint clean - [x] production build succeeds - [x] verified end-to-end in the preview harness: mixed batch (exact format / flipped-to-audio / preset fallback) mapped correctly per entry
debont80 added 1 commit 2026-07-02 16:57:23 -04:00
Each video row in the playlist panel gets an exact-format button that
lazily probes just that entry's URL (reusing the existing single-video
probe IPC, no new main-process code) and shows a native Select of its
real formats. The choice flows through addMany -> formatId per queue
item. Probing is on-demand per row, never all up front, since a
playlist can hold thousands of entries and per-entry probes are
rate-limited.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
debont80 added 1 commit 2026-07-02 17:05:41 -04:00
Peer-review of the exact-format-per-item feature: re-clicking "Preview
formats" on an already-loaded playlist reset info/playlist but left
itemFormats/itemFormatOptions/formatExpanded keyed by position, so a
stale exact-format pick could silently reattach to a different video
landing at the same index in the new probe result and flow into
addPlaylist(). Extracted resetPlaylistItemState() and call it from
both clearProbe() and fetchFormats().

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
debont80 merged commit d8df5ea7c8 into main 2026-07-02 17:06:44 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: debont80/AeroFetch#9