Discord RPC for Jellyfin

June 4, 2026 ยท View on GitHub

Jellyfin RPC updates your Discord status with what you're watching or listening to on your Jellyfin server. Make sure your Discord client is open and that your Activity Privacy settings are configured correctly.

jellyfin_rpc_series jellyfin_rpc_movie

Installation

  • For Windows and macOS, download the latest release for the GUI.

  • For Linux, use pip to install the CLI tool and refer to the CLI usage.

    pip install git+https://github.com/kennethsible/jellyfin-rpc.git
    

Configuration

To generate a Jellyfin API key, go to the server dashboard and select API Keys under Advanced. The Jellyfin host can be either a public or a local URL for your server. However, with a local URL, posters and album covers won't be retrievable from your Jellyfin server. In that case, you will need to rely on public metadata providers (see below for details).

If you prefer to use the CLI over the GUI (or you're on Linux), fill out the included INI config. If you run into any issues, please change log_level in the INI to DEBUG and include the output in your GitHub Issue.

  • %AppData%\Jellyfin RPC
  • ~/Library/Application Support/Jellyfin RPC

Important

TMDB can optionally be used to fetch posters for movies and TV shows. However, you must create a TMDB account and generate an API key. MusicBrainz and the Cover Art Archive can be used to fetch album covers.

  • show_when_paused shows the activity with a paused timer instead of a progress bar. If disabled, the activity stops displaying when you pause your media.
  • show_server_name shows your server name as the activity name instead of saying 'Jellyfin'.
  • show_jellyfin_icon shows a small Jellyfin icon in the bottom right of the poster or album cover.
  • poster_languages is a comma-separated list of two-letter language codes (ISO 639-1) for TMDB.
  • textless_posters controls whether textless TMDB posters are prioritized over language posters.
  • always_use_tmdb controls whether TMDB is the default source for posters or a fallback provider.
  • season_over_series controls whether season posters are preferred over series posters for shows.
  • always_use_musicbrainz controls whether MusicBrainz is the default source for album covers or a fallback provider.
  • release_over_group controls whether release album covers are preferred over group album covers. The distinction between release and release group is described in the MusicBrainz documentation. In short, a release is a specific release of an album that belongs to a release group (one per album).
  • find_best_match searches for missing TMDB or MusicBrainz IDs before fetching posters or covers, respectively. Ideally, you should make sure that Jellyfin has populated these metadata tags.

GUI Screenshot

jellyfin_rpc_gui

CLI Usage

usage: main.py [-h] --ini-path INI_PATH [--log-path LOG_PATH]

options:
  --ini-path INI_PATH
  --log-path LOG_PATH

Local Build Instructions

  1. Install uv

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Create Python Environment

    uv venv .venv --python 3.14
    
  3. Build Standalone Executable

    uv run --extra gui pyinstaller main.spec