soulsync/core/video/enrichment/__init__.py
BoulderBadgeDad c17138bf7d video enrichment 1b: worker engine + TMDB/TVDB clients
Isolated enrichment subsystem mirroring the music worker pattern, on video.db.
- VideoEnrichmentWorker: daemon loop pulling enrichment_next -> client.match ->
  enrichment_apply; pause/resume/stop; get_stats in the same shape the music
  enrichment API returns (enabled/running/paused/idle/current_item/stats/
  progress/breakdown). Client injected -> loop fully unit-tested with a fake.
- TMDB/TVDB clients (thin adapters, keys from video_settings): .enabled +
  match(kind,title,year) -> {id, metadata}; validated live, worker logic tested.
- VideoEnrichmentEngine registry + lazy get_video_enrichment_engine() singleton.
8 tests (match/not_found/error-resilience/stats/disabled/engine/isolation).
2026-06-14 11:21:30 -07:00

7 lines
354 B
Python

"""SoulSync — isolated VIDEO enrichment subsystem.
Mirrors the music enrichment-worker pattern (per-source match status, a worker
loop, a registry) but operates entirely on video.db and never imports the music
enrichment code. The shared Manage-Workers modal / worker-orbs visuals are made
kind-aware separately; this package is the backend half.
"""