jellyfin-apiclient-python
Python API client for Jellyfin
Decision gist · record as of 2026-08-14
Yes, if you need programmatic access to a Jellyfin server and accept GPLv3 copyleft terms. The package is actively maintained, has low dependency friction, and covers most common use cases. Be aware that the API is intentionally incomplete—you may need to extend it for specialized endpoints. Not suitable for proprietary applications due to GPLv3 licensing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with standard HTTP dependencies (requests, urllib3, websocket_client, certifi).
- Package is actively maintained with recent releases; last commit 2026-07-31, 14 days before current snapshot.
License · maintenance · safety
copyleft license (copyleft) — GPLv3 copyleft license requires that any derivative work or distribution must also be licensed under GPLv3 and include source code. Suitable for open-source projects; proprietary applications cannot use this without licensing implications.
last release 2026-07-31 (14 days) · last repo commit 2026-07-31 · 149 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 83,532 downloads/mo, #14,069 on PyPI
Alternatives
Verify before relying
pip install jellyfin-apiclient-python
from jellyfin_apiclient_python import JellyfinClient
client = JellyfinClient()
client.config.app('your_app', '0.0.1', 'machine_name', 'unique_id')
client.auth.connect_to_address('server_url')
client.auth.login('server_url', 'username', 'password')
results = client.jellyfin.search_media_items(term="search_term", media="Videos")- Whether the API client covers all current Jellyfin server endpoints or remains incomplete as stated
- Compatibility with specific Jellyfin server versions beyond the general Python 3.6+ requirement
What it is and what it does
jellyfin-apiclient-python is a Python wrapper around the Jellyfin media server REST API, extracted from the Jellyfin Kodi addon to enable standalone use. It handles server authentication via username/password or API key, session management, and provides methods to search media, fetch metadata, control playback, and manage user data. The client depends on requests, urllib3, websocket_client, and certifi for HTTP communication and WebSocket support.
The package is intentionally incomplete—it exposes common Jellyfin API operations but may require manual additions for less-used endpoints. It supports timesync, SyncPlay, remote session control, and backup APIs. Configuration is done through a config object, and API calls return dictionaries with Items, TotalRecordCount, and StartIndex fields.
Use it for
- Build a custom media player or remote control application that communicates with a Jellyfin server
- Automate media library management tasks such as searching, fetching metadata, or updating user playback state
- Integrate Jellyfin into a home automation or media center workflow without relying on Kodi
- Create a CLI tool or bot that queries and controls Jellyfin playback across multiple sessions
- Develop a third-party interface to browse and stream from a Jellyfin instance
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need programmatic access to a Jellyfin server and accept GPLv3 copyleft terms.
The package is actively maintained, has low dependency friction, and covers most common use cases. Be aware that the API is intentionally incomplete—you may need to extend it for specialized endpoints. Not suitable for proprietary applications due to GPLv3 licensing.
Install
jellyfin-apiclient-python on PyPI
Before you install
Low install friction with standard HTTP dependencies (requests, urllib3, websocket_client, certifi). Package is actively maintained with recent releases; last commit 2026-07-31, 14 days before current snapshot.
License in practice
GPLv3 copyleft license requires that any derivative work or distribution must also be licensed under GPLv3 and include source code. Suitable for open-source projects; proprietary applications cannot use this without licensing implications.
Quickstart
pip install jellyfin-apiclient-python
from jellyfin_apiclient_python import JellyfinClient
client = JellyfinClient()
client.config.app('your_app', '0.0.1', 'machine_name', 'unique_id')
client.auth.connect_to_address('server_url')
client.auth.login('server_url', 'username', 'password')
results = client.jellyfin.search_media_items(term="search_term", media="Videos")
Verify before relying
- Whether the API client covers all current Jellyfin server endpoints or remains incomplete as stated
- Compatibility with specific Jellyfin server versions beyond the general Python 3.6+ requirement
Package facts
| License | copyleft license copyleft |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesrequestsurllib3websocket_clientcertifi |
| Maintenance | Actively maintained 14 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 83,532 / month, #14,069 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: GNU General Public License v3 (GPLv3)Operating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: jellyfin_apiclient_python-1.18.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “jellyfin api client”
- jellyfin-apiclient-pythonPython client library for interacting with Jellyfin media server…
- codewords-clientA Python client library for the Codewords API with built-in FastAPI…
- twentyc.rpcA client library for consuming 20c's RESTful API, built on top of the…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also music-assistant-client · pykodi · blackduck · PlexAPI · ipfshttpclient · pytube · pyoverkiz · ytmusicapi · python-squarelet · apiclient