> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rocksky.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Jellyfin

> Scrobble plays from your Jellyfin server to Rocksky.

Rocksky speaks the ListenBrainz protocol, which means the community
ListenBrainz plugin for Jellyfin works out of the box — you just need to
point it at the Rocksky endpoint.

## Prerequisites

* A running [Jellyfin](https://jellyfin.org) server
* A [Rocksky](https://rocksky.app) account
* An API key from the [API Applications](https://rocksky.app/apikeys) page

## Setup

<Steps>
  <Step title="Install the plugin">
    Install the community
    [ListenBrainz plugin](https://github.com/lyarenei/jellyfin-plugin-listenbrainz),
    then open its settings under **Dashboard → Plugins → ListenBrainz**.
  </Step>

  <Step title="Change the API endpoint">
    Replace the default endpoint:

    ```
    https://api.listenbrainz.org
    ```

    with the Rocksky endpoint:

    ```
    https://audioscrobbler.rocksky.app
    ```
  </Step>

  <Step title="Add your API key">
    Paste your Rocksky API key into the **User token** field and save.

    <Frame>
      <img src="https://mintcdn.com/rocksky/f8tOVRECa7uvBDlF/images/integrations/jellyfin-listenbrainz-plugin.png?fit=max&auto=format&n=f8tOVRECa7uvBDlF&q=85&s=de8c72e09d44dc08385fbc54cd4c3146" alt="Jellyfin ListenBrainz plugin configured with the Rocksky audioscrobbler URL" width="1191" height="985" data-path="images/integrations/jellyfin-listenbrainz-plugin.png" />
    </Frame>
  </Step>

  <Step title="Verify it works">
    Play a track in Jellyfin and refresh your Rocksky profile — the scrobble
    should appear in real time.
  </Step>
</Steps>

<Note>
  Jellyfin sends a scrobble after you've played enough of a track. If a play
  doesn't register, scrub past \~30 seconds and let it keep playing.
</Note>
