update spec
All checks were successful
🏗️ Build Plugin / build (push) Successful in 22s
Latest Release / latest-release (push) Successful in 22s
🧪 Test Plugin / test (push) Successful in 18s
🚀 Release Plugin / build-and-release (push) Successful in 25s

This commit is contained in:
Duncan Tourolle 2026-06-12 19:03:39 +02:00
parent f1cffa7dfa
commit 51a7365815

22
SPEC.md
View File

@ -96,12 +96,34 @@ Requires an administrator API key.
Serves the pause-overlay script that JRay injects into the web client's
`index.html` (see below). Anonymous access.
### `GET /Plugins/JRay/Tasks/Pending?limit=10`
Lets a remote extraction worker discover what to work on next. Returns a
random sample (default 10, max 100) of movies/episodes in the library that
have no truth data yet (neither a managed upload nor a sidecar file):
```json
[
{ "item_id": "abc123-guid", "path": "/data/movies/Movie.mkv", "name": "Movie" }
]
```
Requires an administrator API key. The sample is random and unordered, so
repeated polling naturally spreads work across the backlog without needing
server-side task tracking; an empty array means there's nothing left to do
(or every remaining item is a virtual/missing-path item that JRay can't
process).
## Client: pushing results from a remote extraction worker
A worker that runs the extraction pipeline on a different machine than
Jellyfin (i.e. it cannot write a `Movie.jray.json` sidecar next to the media
file) can push results directly over HTTP.
To find work, poll `GET /Plugins/JRay/Tasks/Pending?limit=10` (see above) for
a random batch of items that still need processing, instead of walking the
whole library and checking each item's `Timeline`/sidecar yourself.
### 1. Authenticate
Create an **Administrator** API key in Jellyfin (Dashboard → API Keys), and