/mopidy-jellyfin

Jellyfin Extension for Mopidy

Primary LanguagePythonApache License 2.0Apache-2.0

Mopidy-Jellyfin

Latest PyPI version

Mopidy extension for playing audio files from Jellyfin

Notes:

  • Supports both "Music" and "Book" media types
  • Tested using ncmpcpp, M.A.L.P., and various mopidy web frontends.
    • When using ncmpcpp, it's recommended to set mpd_connection_timeout = 30, particularly if browsing folders that have a large number of items inside them
    • There is some inconsistency in M.A.L.P. where you may have to go to the menu and select 'Show All Tracks' for the library to populate properly
  • MPDroid on Android does not work properly

Installation

Install by running:

pip install Mopidy-Jellyfin

Mopidy-Jellyfin has officially moved to Python 3 with the release of Mopidy 3.0. All future updates will target this newer version.

Configuration

Before starting Mopidy, you must add configuration for Mopidy-Jellyfin to your Mopidy configuration file:

[jellyfin]
hostname = Jellyfin server hostname
username = username
password = password
user_id = userid (Optional: Needed for token authentication)
token = token (Optional: Use for authentication instead of username and password)
libraries = Library1, Library2 (Optional: will default to "Music" if left undefined)
albumartistsort = False (Optional: will default to True if left undefined)
album_format = {ProductionYear} - {Name} (Optional: will default to "{Name}" if left undefined)
max_bitrate = number
  • libraries determines what is populated into Mopidy's internal library (view by Artists/Album/etc). Using the file browser will show all libraries in the Jellyfin server that have a 'music' type.

  • albumartistsort changes whether the media library populates based on "Artist" or "Album Artist" metadata

  • album_format can be used to change the display format of music albums when using the file browser view. Currently the only really usable fields are ProductionYear and Name

    max_bitrate is used to trigger transcoding if a file is over a given bitrate (in kbps)

Development

  1. Install mopidy to your host system, preferably using the native package manager. This handles all of the required dependencies.

  2. Clone the repo to your local workstation

    $ git clone git@github.com:jellyfin/mopidy-jellyfin.git && cd mopidy-jellyfin

  1. Set up a virtualenv. We need to include system packages since some things don't behave well inside of a virtualenv (such as PyGObject or interacting with pulseaudio). Note that with the release of Mopidy 3.0 only Python 3.7 or newer is supported.

    $ python -m venv env --system-site-packages

  2. Install mopidy-jellyfin to the virtualenv.

    $ env/bin/python setup.py develop

  3. Do your thing.

    Mopidy can be launched from the virtualenv with env/bin/mopidy

Project resources

Credits