soulsync/core/video/enrichment
BoulderBadgeDad ba6065f1b3 video discover phase 1b-d: gap-engine queries, engine collection fetch, /discover/gaps API
- video_database: owned_movie_tmdb_ids (diff set), owned_movie_collections (franchises you've
  started, most-invested first), top_owned_people (directors/creators you own the most).
- engine.collection(id): cached + owned-annotated franchise film list (person_detail already
  gives owned-annotated filmography).
- /api/video/discover/gaps: builds 'Complete the <franchise>' rails (collection_gaps) + 'More
  from <person>' rails (filmography_gaps, movies, vote-filtered) — the 'what am I missing' section.
All additive; gap diffs are the pure tested core.
2026-06-22 23:28:23 -07:00
..
__init__.py video enrichment 1b: worker engine + TMDB/TVDB clients 2026-06-14 11:21:30 -07:00
backfill.py video backfill: log the title (was 'None') — read item['title'] not ['name'] 2026-06-19 15:12:02 -07:00
cache.py video: real TTL+LRU cache (thread-safe) + cache search — the kettui way 2026-06-15 13:02:24 -07:00
clients.py video discover phase 0: persist TMDB collection (franchise) id per movie 2026-06-22 23:24:42 -07:00
engine.py video discover phase 1b-d: gap-engine queries, engine collection fetch, /discover/gaps API 2026-06-22 23:28:23 -07:00
worker.py video enrichment: detail backfill is TMDB-only (fix TVDB 404 spam + double-processing) 2026-06-20 12:38:03 -07:00