Installing Mopidy Extension
The Mopidy Jellyfin extension is available to install from PyPi using pip.
General
For general use computers, such as workstations or laptops, it's recommended to install Mopidy extensions in user mode. Installing python packages from pip using sudo or root permissions can lead to conflicts with your package manager in the future.
-
Install Mopidy using your method of choice using the official documentation
-
Install the Jellyfin extension for Mopidy:
pip3 install --user mopidy-jellyfin
-
(Optional) Install other mopidy related packages:
pip3 install --user mopidy-mpd mopidy-musicbox-webclient
-
Configure your
mopidy.conf
located at$HOME/.config/mopidy/mopidy.conf
See Config File -
There may be a need to install extra
gstreamer
codecs if they're not already on your system, but these are highly variable and depend on your hardware and distro -
Start the program by running
mopidy
from a terminal -
See Usage
Raspberry Pi (Remote Controlled Speakers)
Utilizing a Raspberry Pi (or other small form factor computer) it's possible to use Mopidy to build a set of standalone smart speakers connected to your Jellyfin server.
-
Grab the latest raspbian image. Unless you have a need for a GUI, the 'Lite' image is plenty for this project.
-
Install the image to the SD card (See the official documentation)
-
Install Mopidy from their apt repo to ensure we get the latest version
-
Install required OS packages:
sudo apt install mopidy mopidy-mpd gstreamer1.0-plugins-bad python3-pip
-
Install the Jellyfin extension and any other Mopidy related packages you may want:
sudo pip3 install mopidy-jellyfin mopidy-musicbox-webclient
-
Configure your
mopidy.conf
located at/etc/mopidy/mopidy.conf
: See Config File -
Enable and start the mopidy service:
sudo systemctl enable --now mopidy
-
See Usage
Config File
The config file for Mopidy is divided into sections in an INI format. An example for Jellyfin is shown here.
[jellyfin]
hostname = Jellyfin server hostname
username = username
password = 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)
libraries
determines what is populated into Mopidy's internal library (view by Artists/Album/etc). Using the file browser will show all music or book libraries in the Jellyfin serveralbumartistsort
changes whether the media library populates based on "Artist" or "Album Artist" metadataalbum_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
Other options that may be useful to include:
[mpd]
enabled = true
# Useful if you want to control this instance from a remote MPD client
hostname = 0.0.0.0
port = 6600
# This will help avoid timeout errors for artists or folders with large amounts of files
connection_timeout = 300
# Used in the event you want to control this system from a web browser
[http]
hostname = 0.0.0.0
port = 6680
Be aware that Mopidy provides no security on open ports, so if you'll be running this in a public place you'll likely want to change 0.0.0.0
to 127.0.0.1
to prevent somebody else from hijacking your listening session.
Usage
Once Mopidy is running, you can connect and control it with your client of choice. MPD clients will connect using port 6600 by default. Tested MPD clients include ncmpcpp and M.A.L.P. Web clients can be reached at http://localhost:6680
, or http://$IP_ADDRESS:6680
if this is a remote system.
Upgrading
When a new version of Mopidy Jellyfin is released, you can upgrade via pip using the --upgrade
flag.
pip3 install --user --upgrade mopidy-jellyfin