soulsync/webui/static/video
BoulderBadgeDad 6e526d7745 video detail: deeper TMDB extras — trailer, where-to-watch, more like this
Phase 4: dynamic extras fetched LIVE per view (providers change, so not cached)
via GET /detail/<kind>/<id>/extras → engine.item_extras → TMDB
(videos + watch/providers + similar in one call).
- Trailer: a '▶ Trailer' action that opens an in-app YouTube modal embed (Esc /
  click-away to close).
- Where to Watch: provider logos for the region (JustWatch via TMDB).
- More Like This: a poster row of similar titles linking out to TMDB.
Both movie + show pages; all keyless (same TMDB key).

Seam tests: extras parse (trailer priority, provider/similar shape), item_extras
gating on tmdb_id, route registered, markup hooks. (RT/Metacritic via OMDb needs
its own key — offered separately.)
2026-06-14 21:42:41 -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 detail: deeper TMDB extras — trailer, where-to-watch, more like this 2026-06-14 21:42:41 -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: Movie detail page (Netflix flat layout), movies now clickable 2026-06-14 21:31:51 -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 detail: deeper TMDB extras — trailer, where-to-watch, more like this 2026-06-14 21:42:41 -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