feat(cameo): detect recognised actors not credited in a title

Add two cameo hunters that flag actors recognised in a title but absent from
its cast:
  - cameo_jellyfin.py — pure-Jellyfin cast-membership check (no id cross-walk)
  - cameo_hunt.py     — TMDB filmography check (actor's combined_credits)

run_from_jellyfin.py now stamps the analysed title's Jellyfin item GUID into
the output JSON as top-level 'jellyfin_item_id' (scene_analyze can't know it),
which cameo_jellyfin.py uses to look up the cast in Jellyfin's own id space.
Document that field in the result-sink output schema header.
This commit is contained in:
2026-07-04 20:39:35 +02:00
parent 3700c763dd
commit 96b1c22194
4 changed files with 668 additions and 16 deletions
+5
View File
@@ -22,6 +22,11 @@ using json = nlohmann::json;
// "schema_version": 1, "movie": "...", "sample_fps": ..., "anneal_sec": ...,
// "actors": [{ "name", "imdb_id", "tmdb_id", "jellyfin_id", "scenes": [[t0,t1], ...] }]
// }
// An optional top-level "jellyfin_item_id" (the analysed title's Jellyfin item
// GUID) may also be present: scene_analyze doesn't know it, so it's stamped in
// by run_from_jellyfin.py after analysis. Downstream tools (cameo detection)
// use it to check cast membership in Jellyfin's own id space — see
// scripts/cameo_jellyfin.py.
// This is the spec consumed by the Jellyfin plugin: each actor carries every
// identity key the gallery knows (empty string if not resolved). The plugin
// should prefer "jellyfin_id" (direct Person item GUID) when non-empty, and