Skip to content
A macOS wrapper for Jellyfin Server
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Server.xcodeproj initial commit Jul 5, 2019
LICENSE Initial commit Jul 5, 2019 Fix the README to include ffprobe Jul 10, 2019
azure-pipelines.yml Update the GitHub connection to a Grant Connection Jul 6, 2019

Jellyfin for macOS

Part of the Jellyfin Project

Jellyfin for macOS is a launcher/wrapper built in Swift.

Build Process

Getting Started

  1. Clone or download this repository.

    git clone
  2. Create a second directory beside this repository, called jellyfin-mac-app-resources.

    mkdir jellyfin-mac-app-resources
  3. Download Jellyfin, and extract it. Rename the folder to jellyfin and put it inside the resources folder.

  4. Download the correct version of FFmpeg. Extract it, and place ffmpeg and ffprobe in the root of jellyfin-mac-app-resources.

  5. Open Server.xcodeproj with Xcode, and build.

Directory Structure

The basic directory structure should look like this:

├── Server
└── Server.xcodeproj

├── ffmpeg
├── ffprobe
└── jellyfin

FFmpeg Download

It's recommended to use a static macOS build of FFmpeg, such as Zeranoe's Builds.

At the time of writing, please use


The project didn't build!

Please review the error inside Xcode. If a build failed, it is likely because the resources aren't in the right directory.

The project built, but Jellyfin didn't launch. Xcode shows an error.

Does the console inside Xcode show Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"? If so, you need to fix your Jellyfin directory inside -resources.

Does the console show a Failed to bind to address message? You may already have a copy of Jellyfin running on your computer. This can happen if you did not shutdown a separate Jellyfin install, or if you clicked on "Stop" inside Xcode. Use Activity Monitor to find and quit any open Jellyfin process.

The project built, but Jellyfin didn't launch. There are no errors I can see.

This wrapper does not launch the Web UI automatically. This will eventually become a configurable option. In the meanwhile, you can use the Jellyfin icon in the menu bar to launch the Web UI.

You can’t perform that action at this time.