myMPD is a standalone and lightweight web-based MPD client. It's tuned for minimal resource usage and requires only very few dependencies. Therefore myMPD is ideal for raspberry pis and similar devices.
The backend is written in C and has no dependencies to external databases or webservers. The configuration is stored in plain text files and all the data is pulled on demand from MPD. The MPD database is the only source of truth for myMPD.
The frontend is mobile friendly, written as a PWA and offers on all devices the same functionality. It communicates over AJAX and websockets using the json-rpc 2 protocol.
myMPD also integrates extended features like an advanced jukebox mode, timers, triggers and smart playlists. With the integrated lua interpreter myMPD functions can also be scripted.
- Control mpd functions (play, pause, etc.)
- Set mpd options (repeat, random, etc.)
- MPD mount and neighbors support
- MPD partition support
- MPD output attributes
- Browse mpd database by tags (gridview)
- Browse filesystem
- Queue management
- Playlist management
- Advanced search
- Jukebox mode
- Customizable home screen and navigation bar
- Smart playlists and saved searches
- Playback statistics and song voting
- Local albumart support: embedded and image per folder
- Unsynchronized and synchronized Lyrics
- Local booklet support (per album folder)
- HTTP stream support
- Local playback of mpd http stream
- Timers and Triggers
- Lua scripting
- Embedded Webserver (mongoose)
- Localized user interface
- Publishing of mpd and myMPD directories via http
- Progressiv Web App enabled
- Support of Media Session API
To use all myMPD functions you should use the latest stable MPD version (0.22.x).
myMPD is in active development. If you like myMPD, you can help to improve it (no programming skills are required).
- Star this repository
- Help to improve myMPD.
- Use issues for bug reports only.
- Use discussion for feature requests, questions and general feedback.
- If I accept a feature request, I will open an issue and assign a milestone to it.
- Consider donating a coffee to this project.
myMPD should run on all current linux distributions. There are four ways to install myMPD:
- Use a linux distribution that delivers a myMPD package - the easiest way: Distributions with myMPD
- Use a prebuild package: Prebuild-Packages
- Use the docker image: Docker
- Use the
build.shscript to compile myMPD: Building myMPD
On the first startup myMPD reads some environments variables and tries to autodetect the MPD connection configuration.
For further information on installation and configuration, see the myMPD documentation
2018-2021 Juergen Mang firstname.lastname@example.org
myMPD is a fork of ympd.