Drupal is a registered trademark of Dries Buytaert

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 connectivity
  • getServerInfo() - Get server information
  • getPublicInfo() - Get public server info (no auth)

Library Operations

  • getLibraries() - List all media libraries
  • refreshLibrary() - Trigger library refresh
  • getMediaFolders() - Get media folders

Item Operations

  • getItems($params) - Query items with filters
  • getItem($itemId) - Get specific item details
  • getMovies($params) - Get movies
  • getSeries($params) - Get TV series
  • getEpisodes($params) - Get episodes
  • getLatestMedia($userId) - Get recently added
  • getSimilarItems($itemId) - Get similar items

Search & Metadata

  • search($query) - Search library
  • getGenres() - List genres
  • getStudios() - List studios
  • getArtists() - List artists
  • getPersons() - List persons (actors, directors)

Image & Playback

  • getPosterUrl($itemId) - Get poster image URL
  • getBackdropUrl($itemId) - Get backdrop image URL
  • getStreamUrl($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

  1. Download and install the module
  2. Navigate to Configuration → Media → Jellyfin Integration
  3. Enter your Jellyfin server URL and API key
  4. Click "Test Connection" to verify
  5. 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

Credits

Developed following Service-Oriented Architecture patterns for clean, maintainable code.

Activity

Total releases
2
First release
Jan 2026
Latest release
1 month ago
Release cadence
6 days
Stability
100% stable

Releases

Version Type Release date
1.0.1 Stable Jan 13, 2026
1.0.0 Stable Jan 7, 2026