From 21a1e5ddbbf8cf2fdea404d1304522c09b205df1 Mon Sep 17 00:00:00 2001 From: BoulderBadgeDad Date: Wed, 17 Jun 2026 23:31:33 -0700 Subject: [PATCH] Video enrichment: wire new workers into Manage Workers modal + Settings - Manage Workers modal: register fanart.tv / OpenSubtitles / YouTube Votes (RYD) / SponsorBlock in the worker rail (cards + animations + pause/resume come free via the shared .em-* design); add the 'video' entity kind. - Settings: fanart.tv + OpenSubtitles API-key fields (with Test buttons) and a no-key 'YouTube Extras' toggle frame (RYD + SponsorBlock on/off). - API /enrichment/config now reads/writes the two keys + the two toggles; a key change rebuilds the engine so the worker turns on immediately. --- api/video/enrichment.py | 11 ++++ webui/index.html | 56 +++++++++++++++++++ .../static/video/video-enrichment-manager.js | 9 ++- webui/static/video/video-settings.js | 20 ++++++- 4 files changed, 93 insertions(+), 3 deletions(-) diff --git a/api/video/enrichment.py b/api/video/enrichment.py index e568a269..5f4add1c 100644 --- a/api/video/enrichment.py +++ b/api/video/enrichment.py @@ -50,6 +50,11 @@ def register_routes(bp): "tmdb_api_key": db.get_setting("tmdb_api_key") or "", "tvdb_api_key": db.get_setting("tvdb_api_key") or "", "omdb_api_key": db.get_setting("omdb_api_key") or "", + # Backfill-worker keys (free, optional) + no-key toggles. + "fanart_api_key": db.get_setting("fanart_api_key") or "", + "opensubtitles_api_key": db.get_setting("opensubtitles_api_key") or "", + "ryd_enabled": (db.get_setting("ryd_enabled") or "1") == "1", + "sponsorblock_enabled": (db.get_setting("sponsorblock_enabled") or "1") == "1", "billboard_autoplay": (db.get_setting("billboard_autoplay") or "1") == "1", "watch_region": (db.get_setting("watch_region") or "US").upper(), }) @@ -81,6 +86,12 @@ def register_routes(bp): put_key("tmdb_api_key") put_key("tvdb_api_key") + put_key("fanart_api_key") + put_key("opensubtitles_api_key") + # No-key worker on/off toggles (read live by the worker — no rebuild needed). + for flag in ("ryd_enabled", "sponsorblock_enabled"): + if flag in body: + db.set_setting(flag, "1" if body.get(flag) else "0") if "billboard_autoplay" in body: db.set_setting("billboard_autoplay", "1" if body.get("billboard_autoplay") else "0") if "watch_region" in body: diff --git a/webui/index.html b/webui/index.html index 9cc3c209..457bce25 100644 --- a/webui/index.html +++ b/webui/index.html @@ -5464,6 +5464,62 @@ +
+
+ +

fanart.tv (Artwork)

+ +
+
+
+ + +
+
+
Get a free key from fanart.tv
+
Clear logos, clearart, banners, posters & backgrounds (gap-fills missing art).
+
+ +
+
+
+
+ +

OpenSubtitles (Subtitles)

+ +
+
+
+ + +
+
+
Get a free key from OpenSubtitles (register a consumer)
+
Records which subtitle languages exist per title.
+
+ +
+
+
+
+ +

YouTube Extras (No Key)

+ +
+
+ + +
+
Free community APIs — no key needed. Enrich cached YouTube videos in the background.
+
+
+