A fully-featured, dependency-free PHP library for MPD https://mphpd.org
Find a file
2026-03-29 12:59:46 +02:00
.github Run on workflow_dispatch: 2026-03-29 12:51:02 +02:00
doc Improved some stuff 2025-10-21 18:12:06 +02:00
docs v2.0.0-rc1 2026-03-29 12:52:33 +02:00
src Fix small docblock 2026-03-29 12:59:46 +02:00
tests Removed case_sensitive test for add_search 2026-03-29 12:43:10 +02:00
.gitattributes Update .gitattributes 2025-08-18 19:21:38 +02:00
.gitignore v1.3.0 2025-09-15 18:57:28 +02:00
CHANGELOG.md v2.0.0-rc1 2026-03-29 12:46:12 +02:00
composer.json Upped PHP version to 8.2 2025-08-16 16:49:13 +02:00
LICENSE.md v0.1.0 2022-12-23 14:31:01 +01:00
phpunit.xml Made phpunit work again 2025-08-16 10:57:59 +02:00
README.md Replaced github.com with codeberg.org 2025-10-15 15:18:57 +02:00

A fully-featured, dependency-free PHP library for MPD

MphpD is a library for the Music Player Daemon. It lets you control MPD from within your PHP application in a simple and object-oriented way while also taking care of escaping, parsing, error reporting and all the other painful stuff.

The whole MPD protocol is supported!

Bug Reporting

Please report any bugs or issues you encounter here. Thanks.

Installation

You can either install this library by using composer:

composer require flofaber/mphpd --prefer-dist

and then autoload it:

require_once __DIR__ . "/vendor/autoload.php";

or by simply downloading it and including it in your code like so:

require_once __DIR__ . "/MphpD/MphpD.php";

Usage

Create a new MphpD instance:

use FloFaber\MphpD\MphpD;
use FloFaber\MphpD\MPDException;

$mphpd = new MphpD([
  "host" => "127.0.0.1",
  "port" => 6600,
  "timeout" => 5
]);

and connect to MPD

try{
  $mphpd->connect();
}catch (MPDException $e){
  echo $e->getMessage();
  return false;
}

Example

Here are some examples of what you can do with it:

// get MPD's status like current song, volume, state, etc...
$status = $mphpd->status();

// if you only want to retrieve only one (or more) values
// you can pass it a list of keys.
$state = $mphpd->status([ "state" ]);

// clear the queue
$mphpd->queue()->clear();

// load the first 10 songs of a playlist into the queue and exit on failure.
if(!$mphpd->playlist("some-playlist")->load([0,10])){
  echo $mphpd->get_last_error()["message"]; // prints "No such playlist"
  return false;
}

// shuffle the queue
$mphpd->queue()->shuffle();

// adjust volume to 40%
$mphpd->player()->volume(40);

// start playing
$mphpd->player()->play();

For further information have a look at the Documentation.

Supported PHP versions

  • MphpD v2 requires PHP8.2 and above
  • MphpD v1 requires PHP7.4

Required PHP extensions

  • Only sockets which is included by default on most PHP installations.

Required PHP functions

A list of PHP functions required by MphpD for socket communication:

  • fgets
  • fputs
  • fread
  • stream_get_meta_data
  • stream_set_chunk_size
  • stream_set_timeout
  • stream_socket_client