添加语言src / i18n / zh-CN.txt 8bc6c53
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 ist 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.
myMPD is a fork of ympd.
Features
- 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
- Albumart grid
- Browse filesystem
- Queue management
- Playlist management
- Advanced search
- Jukebox mode
- Smart playlists and saved searches
- Play statistics and song voting
- Local albumart support: embedded and image per folder
- Local lyrics (textfile per song or embedded)
- Local booklet support (per album folder)
- HTTP stream support
- Local playback of mpd http stream
- Timers and Triggers
- System commands
- Lua scripting
- Scrobbler integration
- Embedded Webserver (mongoose)
- Localized user interface
- Themeing
- Publishing of mpd and myMPD directories via http and webdav
- Progressiv Web App enabled
- Support of Media Session API
myMPD is in active development. If you like myMPD, you can help to improve it (no programming skills are required).
To use all myMPD functions you should use the latest stable MPD version (0.21.x). myMPD already supports function of MPD 0.22.x (e.g. the readpicture command).
- Mongoose (web server)
- Frozen (json parsing)
- inih (config file parsing)
- incbin (embedding assets)
- sds (safe string handling)
- rax (radix tree implementation)
- TinyMT (prng)
- libmpdclient2 (mpd communication)
myMPD has no hard dependencies beside the standard c libraries. Not installing the optional dependencies leads only to a smaller subset of myMPD functions.
- OpenSSL >= 1.1.0 (optional): for https support
- libid3tag (optional): to extract embedded albumart
- libflac (optional): to extract embedded albumart
- liblua >= 5.3.0 (optional): for scripting myMPD
- cmake >= 3.4
- libasan3: for debug builds only
- Java: to minify files (optional)
- Perl: to create translation files
- Get myMPD tarball from GitHub
- Extract myMPD tarball and change path to this directory
- Install dependencies (as root):
./build.sh installdeps
- Build myMPD:
./build.sh release
- Install myMPD (as root):
./build.sh install
Adapt the configuration file /etc/mympd.conf
to your needs (/etc/webapps/mympd/mympd.conf
for Archlinux) or use the mympd-config tool to generate automatically a valid mympd.conf
.
Usage: ./mympd [/etc/mympd.conf]
The ./build.sh
script installs a startup script for systemd, openrc or sysVinit.
For further information on installation and configuration, see the myMPD wiki
2018-2020 Juergen Mang mail@jcgames.de