| Crates.io | jellyfin-sdk |
| lib.rs | jellyfin-sdk |
| version | 0.1.0 |
| created_at | 2026-01-03 14:08:00.415196+00 |
| updated_at | 2026-01-03 14:08:00.415196+00 |
| description | Async Jellyfin API client SDK for Rust (reqwest-based). |
| homepage | https://github.com/Latias94/jellyfin-sdk |
| repository | https://github.com/Latias94/jellyfin-sdk |
| max_upload_size | |
| id | 2020121 |
| size | 2,474,831 |
Async Jellyfin API client SDK for Rust (reqwest-based).
This crate focuses on a high-quality core calling experience (auth, retries, pagination, streaming), then expands endpoint coverage based on real playback/library workflows.
Early-stage. Public APIs may change quickly until 1.0.
reqwest (Rustls) + Jellyfin Authorization: MediaBrowser ...set_token / clear_token) shared across clonesstartIndex/limit + QueryResult<T>request/execute/send_json) for unwrapped endpointsSee docs/ALIGNMENT.md for:
Build-time metadata is extracted from docs/jellyfin-openapi-stable.json (see jellyfin_sdk::openapi::*).
See docs/ALIGNMENT.md for a high-level view of what is implemented vs. the OpenAPI spec.
Add the dependency:
cargo add jellyfin-sdk
Basic usage:
use jellyfin_sdk::JellyfinClient;
# async fn demo() -> jellyfin_sdk::Result<()> {
let client = JellyfinClient::builder("http://localhost:8096")?
.client_name("my-app")
.device_name("rust")
.build()?;
client.set_token("your_access_token");
let info = client.system().get_public_info().await?;
println!("server={:?} version={:?}", info.server_name, info.version);
# Ok(())
# }
Run the quickstart example (see --help for the full flag list):
cargo run --example quickstart -- --url http://localhost:8096 --token <token> --list-views
When you need an endpoint that isn't wrapped yet, use the raw request helpers:
client.request(Method::GET, "/Some/Path")?client.send_json(...) for typed JSONclient.execute(...) for streaming downloadsJellyfin commonly uses startIndex + limit. For endpoints that return a QueryResult<T> payload,
use pagination::QueryPager (or the per-API pager(...) helpers).
Rust 1.85 (edition 2024).
Dual-licensed under either:
LICENSE-APACHE)LICENSE-MIT)