soulsync/core/video/enrichment
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
..
__init__.py video enrichment 1b: worker engine + TMDB/TVDB clients 2026-06-14 11:21:30 -07:00
clients.py video detail: deeper TMDB extras — trailer, where-to-watch, more like this 2026-06-14 21:42:41 -07:00
engine.py video detail: deeper TMDB extras — trailer, where-to-watch, more like this 2026-06-14 21:42:41 -07:00
worker.py video manage-workers modal: Process First Everywhere, search/filter, live glow 2026-06-14 18:28:22 -07:00