{"name":"@deckyard/jellyfin","description":"Jellyfin media server REST API: sign-in and API keys, libraries, items with paging and search, resume, next up, played and favourite marks, images, users, scans, tasks, sessions","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-jellyfin.git","ref":"0.1.0","commit":"6eb995b9c1d60d8b2991ec28790aaece264865ed","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.26.0"},"capabilities":["net"],"keywords":["jellyfin","media-server","self-hosted","rest","movies"],"description":"Jellyfin media server REST API: sign-in and API keys, libraries, items with paging and search, resume, next up, played and favourite marks, images, users, scans, tasks, sessions","publishedAt":"1794609227","repoId":1457146742,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/jellyfin\n\n[![test](https://github.com/deckyard/deck-jellyfin/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-jellyfin/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-jellyfin/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-jellyfin)](https://github.com/deckyard/deck-jellyfin/releases/latest)\n\nA client for the REST API of [Jellyfin](https://jellyfin.org/), the\nself-hosted media server, for [Jennifer](https://jennifer-lang.dev/)\nprograms: sign in with a password or an API key; browse, page and search\na user's libraries; latest additions, resume and next up; played and\nfavourite marks; posters and other images; and the administration side:\nusers, library scans, scheduled tasks and the sessions of clients playing\nmedia. Every request has a deadline and a response cap, and plain http is\nrefused except to this machine unless allowed.\n\n**[Documentation](https://deckyard.github.io/deck-jellyfin/)**\n\n## Install\n\n```sh\njvc add @deckyard/jellyfin\n```\n\nThis vendors the deck to `vendor/\u003cscope\u003e/jellyfin/`. Without `jvc`, unpack the\n`src/` subtree of a release archive (`\u003cscope\u003e-jellyfin-\u003cversion\u003e.tar.gz`) there.\n\n## Usage\n\n```jennifer\nuse io;\nuse os;\n\nimport \"@deckyard/jellyfin/\" as jellyfin;\n\ndef c as jellyfin.Client init jellyfin.login(\n    jellyfin.client(\"https://media.example.org\"), \"alice\", os.getEnv(\"JELLYFIN_PASSWORD\"));\nfor (def it in jellyfin.resume($c, 10)) {\n    io.printf(\"%s at %d s\\n\", $it.name, $it.positionSeconds);\n}\n```\n\n## Requirements\n\nJennifer 0.26.0 or newer and the default `jennifer` binary (the deck needs\n`net`), and Jellyfin 10.9 or newer.\n\n## Development\n\n```sh\ntools/check-all.sh                   # the full gate, as CI runs it\njennifer test src/jellyfin_test.j    # the tests, against a fake server\ntools/check-docs.sh                  # docs against the code\ntools/pack.sh dist                   # build the release archive\n```\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n\n`tools/check-headers.sh` checks every source file's SPDX header against\n`deck.toml`.\n"}