improved jellyfin support
This commit is contained in:
@@ -151,6 +151,37 @@ Anything after `--` is passed through to `scene_analyze` unchanged. Pass
|
||||
`--no-filter` to use the gallery as-is (skip per-title cast filtering), or
|
||||
`--item-id` instead of `--title` to skip the search.
|
||||
|
||||
After a successful run, the output JSON is pushed to the JRay Jellyfin
|
||||
plugin's Truth endpoint (`PUT /Plugins/JRay/Items/{itemId}/Truth`) so
|
||||
Jellyfin picks it up immediately, using `--api-key` (must be an
|
||||
**Administrator** key for the push to succeed). Pass `--no-push` to skip
|
||||
this and only write `--output` locally (e.g. for local debugging).
|
||||
|
||||
### Worker mode
|
||||
|
||||
Pass `--worker` instead of `--item-id`/`--title` to run this as an extraction
|
||||
worker: it polls the JRay plugin's `GET /Plugins/JRay/Tasks/Pending` endpoint
|
||||
for a random batch of items with no truth data yet, processes each one, and
|
||||
pushes the result back. The endpoint's sampling spreads work across the
|
||||
backlog without any server-side task tracking, so any number of workers can
|
||||
poll the same library concurrently.
|
||||
|
||||
```bash
|
||||
python3 scripts/run_from_jellyfin.py \
|
||||
--jellyfin-url http://jellyfin.local:8096 \
|
||||
--api-key <ADMIN_API_KEY> \
|
||||
--gallery whole_gallery.json \
|
||||
--worker \
|
||||
-- --fps 5
|
||||
```
|
||||
|
||||
- `--poll-limit` — batch size requested from `Tasks/Pending` (default 10, max 100)
|
||||
- `--poll-interval` — seconds to sleep between polls when the backlog is empty (default 60)
|
||||
- `--once` — process a single batch and exit instead of looping forever
|
||||
|
||||
A failure on one item (bad path, push rejected, etc.) is logged and the
|
||||
worker moves on to the next item rather than exiting.
|
||||
|
||||
## Output format
|
||||
|
||||
**Minimal** (default) — Jellyfin-ready:
|
||||
|
||||
Reference in New Issue
Block a user