soulsync/webui/static/video
BoulderBadgeDad b9b3b9eed3 video 'capture everything': cast & crew (people + credits) + cast row UI
Last capture piece, schema v3 (new people + credits tables; CREATE IF NOT EXISTS
migrates existing DBs on restart, no wipe):
- people deduped by tmdb_id; credits link to exactly one movie OR show (separate
  nullable FKs + CHECK, no polymorphic id) with department/job/character/order.
- TMDB client appends credits to the detail call (free) and parses cast (name,
  character, photo, billing order) + headline crew (directors/writers/creators).
- enrichment_apply backfills cast/crew gap-only (never clobbers); show/movie
  detail return cast + crew. Populates on view via the existing lazy refresh-art.
- Cast & Crew section on the detail page: grouped crew line + a horizontal
  cast row with circular TMDB headshots, names, characters (accent hover).

Seam tests: TMDB credit parse (+ job filtering, created_by), backfill + people
dedup across titles, gap-only no-clobber, payload shape.
2026-06-14 21:20:08 -07:00
..
video-dashboard.js video dashboard: Library card is a live scan tool (parity with music) 2026-06-14 09:28:14 -07:00
video-detail.js video 'capture everything': cast & crew (people + credits) + cast row UI 2026-06-14 21:20:08 -07:00
video-enrichment-manager.js video manage-workers modal: Process First Everywhere, search/filter, live glow 2026-06-14 18:28:22 -07:00
video-enrichment.js video: isolated worker-orbs idle animation on the video dashboard 2026-06-14 13:34:10 -07:00
video-library.js video: TV-show detail page (hero + season/episode tree), isolated 2026-06-14 15:59:29 -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-settings.js video settings: per-connection Test button (mirrors music's testConnection) 2026-06-14 12:26:15 -07:00
video-side.css video 'capture everything': cast & crew (people + credits) + cast row UI 2026-06-14 21:20:08 -07:00
video-side.js video: TV-show detail page (hero + season/episode tree), isolated 2026-06-14 15:59:29 -07:00
video-worker-orbs.js video: isolated worker-orbs idle animation on the video dashboard 2026-06-14 13:34:10 -07:00