What Is Mopidy? An Extensible Music Server Explained

Updated

Mopidy is an extensible music server written in Python. It plays music from your local disk, Internet radio, Spotify, SoundCloud, and other sources, and you control it from any phone, tablet, or computer using MPD or web clients. It runs on Linux computers, Macs, and Raspberry Pi boards that have network connectivity and audio output. If you want a single always-on music server that multiple people can control at once, Mopidy is built for that; if you just want a desktop player with a graphical interface, a dedicated app will be simpler.

What Mopidy actually is

Mopidy is a Python application that runs in a terminal or in the background. It is not a player with its own window — it is a server that other software connects to.

Out of the box, Mopidy is an HTTP server and plays music from files and Internet radio. It does not include a graphical interface of its own. To control playback, you connect a client.

Where the music comes from

  • Built in: local files and Internet radio.
  • Through extensions: many cloud services and radio networks, including Spotify and SoundCloud. Mopidy's extension support lets you add backends for new music sources.

This split matters: the core server handles local and radio playback, and anything cloud-based depends on an extension being installed and configured.

How you control it

Mopidy is just a server, so control comes from separate clients:

  • MPD clients — installing the Mopidy-MPD extension turns Mopidy into an MPD server, and MPD clients exist for all popular operating systems.
  • Web clients — browser-based frontends are available as extensions. Mopidy-Iris by James Barnsley is one example shown on the project site.
  • Multiple listeners at once — you and the people around you can each connect a favorite MPD or web client to the same server to search for music and manage the playlist together.

Where it runs

Mopidy runs on Linux computers or Macs with network connectivity and audio output. The Raspberry Pi is a common host, using Raspberry Pi OS, Ubuntu, or Arch Linux. Pimoroni recommends Mopidy for use with their Pirate Audio audio gear for Raspberry Pi.

Why "extensible" and "hackable" are the point

Mopidy exposes extension support plus Python, JSON-RPC, and JavaScript APIs, which makes it a base for custom projects rather than a fixed product. One example project embedded a Raspberry Pi in an old cassette player: the buttons and volume control were wired to the Pi's GPIO and used to control playback through a custom Mopidy extension, while NFC tags on the cassettes selected Spotify playlists.

If your goal is a standard music player, that flexibility is overhead. If your goal is a music system you can modify, it is the reason to choose Mopidy.

Getting started

  1. Install Mopidy on a Linux machine, Mac, or Raspberry Pi with audio output and network access.
  2. Add the extensions for the sources you need (for example, cloud services) and for the control method you want (such as Mopidy-MPD for MPD clients).
  3. Connect an MPD or web client from your phone, tablet, or computer and start managing the playlist.

Official entry points are the project's Install Mopidy and Browse extensions pages, with documentation, a blog, a Discourse forum, GitHub, and a Zulip chat linked from the site.