soulsync/webui/static/video
BoulderBadgeDad 9a3ca6ba4e video downloads: header 'Auto' picks ONE best across all sources; fix YT playlist leak
Auto: replaced 'Manual all' + 'Auto all' (which fired auto on every source = up to
one download PER source = duplicate copies) with a single header 'Auto' button. It
searches every source, waits for them all to settle, compares the accepted+grabbable
hits across ALL sources by quality-profile score (tie-break on availability), and
grabs exactly ONE winner — the chosen row gets the auto ring + live tracker. Per-source
Manual/Auto buttons are unchanged.

Bug fix: viewing a YouTube channel populated the playlist section in the SHARED
show-detail DOM; opening a real movie/show afterward still showed those playlists,
because ytResetPlaylists() used the kind-scoped q() (pointing at the wrong root on a
movie load) and wasn't called on normal loads. Now it targets the show subpage
directly and runs from resetExtras() (every detail load), so stale playlists are
always cleared.

node --check clean; 20 wiring/regression tests green; all video-only.
2026-06-20 10:48:55 -07:00
..
video-automations.js video automations: working builder + New Automation button (own builder, not music's) 2026-06-19 23:02:52 -07:00
video-calendar.js Calendar: keep hero side panels >=10% wide + make Compact the default view 2026-06-17 00:03:49 -07:00
video-dashboard.js video dashboard: live system stats (memory + uptime) from the shared endpoint 2026-06-18 21:24:59 -07:00
video-detail.js video downloads: header 'Auto' picks ONE best across all sources; fix YT playlist leak 2026-06-20 10:48:55 -07:00
video-discover.js Discover: fix grid pagination + session cache + responsive pass 2026-06-16 15:44:36 -07:00
video-download-view.js video downloads: header 'Auto' picks ONE best across all sources; fix YT playlist leak 2026-06-20 10:48:55 -07:00
video-downloads-page.js video Downloads page: stop polling when off-page (incl. music side); 2s cadence 2026-06-19 17:28:45 -07:00
video-enrichment-manager.js video enrichment: keyless workers read 'Disabled' (not 'Not configured') when off 2026-06-18 23:29:22 -07:00
video-enrichment.js video enrichment: keyless workers read 'Disabled' (not 'Not configured') when off 2026-06-18 23:29:22 -07:00
video-get-modal.js video downloads: live tracking on the grabbed result + movie detail, redesigned cards 2026-06-20 09:41:05 -07:00
video-library.js Video: airing shows get BOTH the watchlist eye AND the get/download button 2026-06-16 11:07:53 -07:00
video-person.js Video: wire the eye/get button onto every card surface 2026-06-16 10:41:07 -07:00
video-scan.js video Tools: rehydrate scan state on page refresh (parity with music) 2026-06-14 07:59:44 -07:00
video-search.js Playlist search result: standard 'Add to Watchlist' button (not 'Follow') 2026-06-17 20:42:30 -07:00
video-settings.js video downloads: split transfer folder into Movies / TV / YouTube libraries 2026-06-19 14:32:54 -07:00
video-side.css video downloads: resume tracking on modal reopen + entirely new result-list design 2026-06-20 09:51:43 -07:00
video-side.js video downloads: live tracking on the grabbed result + movie detail, redesigned cards 2026-06-20 09:41:05 -07:00
video-watchlist-btn.js Watchlist eye: confirm before removing (the standard yes/no dialog) 2026-06-16 09:29:31 -07:00
video-watchlist.js Watchlist cards: show the channel/playlist video count, not '0 videos' 2026-06-17 21:13:33 -07:00
video-wishlist.js YouTube: proxy channel/video images so avatars + thumbnails always load 2026-06-17 08:40:33 -07:00
video-worker-orbs.js video enrichment: show the 5 new workers in the dashboard-header orbs too 2026-06-18 23:22:32 -07:00
video-youtube.js Watchlist cards: show the channel/playlist video count, not '0 videos' 2026-06-17 21:13:33 -07:00