soulsync/core/video
BoulderBadgeDad 13e03a624c video scan: capture the provider IDs the server already has (tmdb/imdb/tvdb)
The servers already matched everything to their agents — we were dropping the
IDs. Now we store them:
- Plex: parse item.guids (imdb://, tmdb://, tvdb://); Jellyfin: parse
  item.ProviderIds (added ProviderIds to the requested Fields).
- Stored on movies (tmdb_id, imdb_id), shows (tvdb_id, tmdb_id, imdb_id), and
  episodes (tvdb_id) via the upserts.
- Dropped the over-strict UNIQUE on movies.tmdb_id / shows.tvdb_id (same title
  can legitimately live in two libraries; we dedupe on server_id). Scanner now
  wraps each upsert in try/except so one bad item can't abort a scan.
Tests: guid/ProviderIds parsing + IDs persisted. 38 video-DB/scanner tests green.
2026-06-14 11:04:54 -07:00
..
__init__.py video side: library scanner (server = source of truth) + scan API 2026-06-13 23:13:50 -07:00
scanner.py video scan: capture the provider IDs the server already has (tmdb/imdb/tvdb) 2026-06-14 11:04:54 -07:00
sources.py video scan: capture the provider IDs the server already has (tmdb/imdb/tvdb) 2026-06-14 11:04:54 -07:00