jellyfin_integration
No security coverage
Overview
The Jellyfin Integration module provides a comprehensive Service-Oriented Architecture (SOA)
integration with Jellyfin, the free software media system. This module allows
Drupal developers to easily interact with Jellyfin's REST API to display and manage media libraries within their
Drupal sites.
Features
- 30+ API Methods - Complete coverage of Jellyfin's key API endpoints
- AJAX Connection Testing - Verify your configuration instantly from the admin UI
- Library Browser - Built-in interface for browsing media libraries
- Movie Grid - Visual display of your movie collection with posters
- Item Details - Full metadata display including ratings, runtime, genres, and overview
- Image URL Generation - Methods for posters, backdrops, and thumbnails
- Stream URL Generation - Direct video streaming URLs
Available API Methods
System Operations
testConnection()- Verify server connectivitygetServerInfo()- Get server informationgetPublicInfo()- Get public server info (no auth)
Library Operations
getLibraries()- List all media librariesrefreshLibrary()- Trigger library refreshgetMediaFolders()- Get media folders
Item Operations
getItems($params)- Query items with filtersgetItem($itemId)- Get specific item detailsgetMovies($params)- Get moviesgetSeries($params)- Get TV seriesgetEpisodes($params)- Get episodesgetLatestMedia($userId)- Get recently addedgetSimilarItems($itemId)- Get similar items
Search & Metadata
search($query)- Search librarygetGenres()- List genresgetStudios()- List studiosgetArtists()- List artistsgetPersons()- List persons (actors, directors)
Image & Playback
getPosterUrl($itemId)- Get poster image URLgetBackdropUrl($itemId)- Get backdrop image URLgetStreamUrl($itemId)- Get video stream URL
Requirements
- Drupal 9.4, 10, or 11
- A running Jellyfin server (10.x recommended)
- API key with appropriate permissions
Installation
- Download and install the module
- Navigate to Configuration → Media → Jellyfin Integration
- Enter your Jellyfin server URL and API key
- Click "Test Connection" to verify
- Save configuration
Usage Example
// Get the Jellyfin client service $jellyfin = \Drupal::service('jellyfin_integration.client'); // Get all movies $movies = $jellyfin->getMovies(['Limit' => 20]); // Display movie posters foreach ($movies['Items'] as $movie) { $poster = $jellyfin->getPosterUrl($movie['Id'], 300); // Use $poster URL in your template }
Related Modules
- Immich Integration - For Immich photo management
- PhotoPrism Integration - For PhotoPrism photo management
Credits
Developed following Service-Oriented Architecture patterns for clean, maintainable code.