A client for the REST API of Jellyfin, the self-hosted media server, for Jennifer programs: sign in with a password or an API key; browse, page and search a user's libraries; latest additions, resume and next up; played and favourite marks; posters and other images; and the administration side: users, library scans, scheduled tasks and the sessions of clients playing media. Every request has a deadline and a response cap, and plain http is refused except to this machine unless allowed.
jvc add @deckyard/jellyfinThis vendors the deck to vendor/<scope>/jellyfin/. Without jvc, unpack the
src/ subtree of a release archive (<scope>-jellyfin-<version>.tar.gz) there.
use io;
use os;
import "@deckyard/jellyfin/" as jellyfin;
def c as jellyfin.Client init jellyfin.login(
jellyfin.client("https://media.example.org"), "alice", os.getEnv("JELLYFIN_PASSWORD"));
for (def it in jellyfin.resume($c, 10)) {
io.printf("%s at %d s\n", $it.name, $it.positionSeconds);
}
Jennifer 0.26.0 or newer and the default jennifer binary (the deck needs
net), and Jellyfin 10.9 or newer.
tools/check-all.sh # the full gate, as CI runs it
jennifer test src/jellyfin_test.j # the tests, against a fake server
tools/check-docs.sh # docs against the code
tools/pack.sh dist # build the release archiveLGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <mplx@jennifer-lang.dev>.
tools/check-headers.sh checks every source file's SPDX header against
deck.toml.