https://github.com/eworm-de/mpd-notification
Notify about tracks played by mpd
https://github.com/eworm-de/mpd-notification
mpd notification
Last synced: 7 months ago
JSON representation
Notify about tracks played by mpd
- Host: GitHub
- URL: https://github.com/eworm-de/mpd-notification
- Owner: eworm-de
- License: gpl-3.0
- Created: 2013-04-15T19:54:28.000Z (about 13 years ago)
- Default Branch: main
- Last Pushed: 2025-01-02T22:25:26.000Z (over 1 year ago)
- Last Synced: 2025-03-30T00:07:06.419Z (about 1 year ago)
- Topics: mpd, notification
- Language: C
- Homepage:
- Size: 224 KB
- Stars: 89
- Watchers: 6
- Forks: 24
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: COPYING.md
Awesome Lists containing this project
README
mpd-notification
================
[](https://github.com/eworm-de/mpd-notification/stargazers)
[](https://github.com/eworm-de/mpd-notification/network)
[](https://github.com/eworm-de/mpd-notification/watchers)
**Notify about tracks played by mpd**
This runs in background and produces notifications whenever mpd produces
an event, that is new track is played or playback is paused or stopped.
Notifications look like this:

This now even supports album artwork:

Read below for the details.
*Use at your own risk*, pay attention to
[license and warranty](#license-and-warranty), and
[disclaimer on external links](#disclaimer-on-external-links)!
Requirements
------------
To compile and run `mpd-notification` you need:
* [systemd ↗️](https://www.github.com/systemd/systemd)
* [file ↗️](https://www.darwinsys.com/file/) for `libmagic`
* [iniparser ↗️](https://github.com/ndevilla/iniparser)
* [libav ↗️](https://libav.org/) or [ffmpeg ↗️](https://www.ffmpeg.org/)
* [libnotify ↗️](https://developer.gnome.org/notification-spec/)
* [libmpdclient ↗️](https://www.musicpd.org/libs/libmpdclient/)
* [markdown ↗️](https://daringfireball.net/projects/markdown/) (HTML documentation)
* `gnome-icon-theme` or `adwaita-icon-theme` (or anything else that includes
an icon named `audio-x-generic`)
To use `mpd-notification` you probably want `mpd`, the
[music player daemon ↗️](https://www.musicpd.org/) itself. ;)
Some systems may require additional development packages for the libraries.
Look for `libnotify-devel`, `libmpdclient-devel` or similar.
Build and install
-----------------
Building and installing is very easy. Just run:
make
followed by:
make install
This will place an executable at `/usr/bin/mpd-notification`,
documentation can be found in `/usr/share/doc/mpd-notification/`.
Additionally a systemd unit file is installed to `/usr/lib/systemd/user/`.
Usage
-----
Just run `mpd-notification` to run it once. A systemd user service can be
started and/or enabled with `systemctl --user start mpd-notification`
or `systemctl --user enable mpd-notification`.
`mpd-notification` accepts some arguments:
* *-h*: show help
* *-H HOST*: connect to *HOST*
* *-m MUSIC-DIR*: use *MUSIC-DIR* for artwork lookup
* *--notification-file-workaround*: write artwork to file for notification
daemons that do required it
* *-p PORT*: connect to *PORT*
* *-s PIXELS*: scale image to a maximum size *PIXELS* x *PIXELS* pixels, keeping
ratio
* *-t TIMEOUT*: notification timeout, *TIMEOUT* in seconds
* *-v*: verbose output
* *-V*: print version information
Configuration
-------------
Configuration options can be read from a configuration file. `mpd`
tries to read `${XDG_CONFIG_HOME}/mpd-notification.conf`, then
`~/.config/mpd-notification.conf`, which is expected to
look like this:
host = localhost
port = 6600
music-dir = /srv/media/music/
scale = 200
text-topic = MPD Notification
text-play = Playing %t\nby %a\nfrom %A
text-pause = Paused %t\nby %a\nfrom %A
text-stop = Stopped playback
timeout = 20
Unused options can be commented or removed completely.
The options `text-play` and `text-pause` support custom formatting with
these specifiers:
* *%t*: title
* *%a*: artist
* *%A*: album
* *%d*: duration
Artwork
-------
`mpd` does not provide any information where it finds its music files. To make
`mpd-notification` display album artwork you need to tell it where to look for
artwork. You can do that by exporting `XDG_MUSIC_DIR` to your environment, by
specifying `-m` or `--music-dir` on the command line or by setting `music-dir`
in configuration file. `mpd-notification` reads album artwork from `mp3`
files, otherwise an image file containing the artwork needs to be placed
in the same directory as the media file and named `cover.jpg`,
`cover.png`, `folder.jpg` or `folder.png`.
License and warranty
--------------------
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[GNU General Public License](COPYING.md) for more details.
Disclaimer on external links
----------------------------
Our website contains links to the websites of third parties ("external
links"). As the content of these websites is not under our control, we
cannot assume any liability for such external content. In all cases, the
provider of information of the linked websites is liable for the content
and accuracy of the information provided. At the point in time when the
links were placed, no infringements of the law were recognisable to us.
As soon as an infringement of the law becomes known to us, we will
immediately remove the link in question.
> 💡️ **Hint**: All external links are marked with an arrow pointing
> diagonally in an up-right (or north-east) direction (↗️).
### Upstream
URL:
[GitHub.com](https://github.com/eworm-de/mpd-notification#mpd-notification)
Mirror:
[eworm.de](https://git.eworm.de/cgit.cgi/mpd-notification/)
[GitLab.com](https://gitlab.com/eworm-de/mpd-notification#mpd-notification)
---
[⬆️ Go back to top](#top)