Music Player Daemon Community Wiki


525pages on
this wiki
Add New Page
Talk9 Share

This is a collection of various Hacks & Scripts that have been collected over time. Feel free to improve on them, add new ones, but don't be surprised if they're broken or otherwise not working.

WARNING: Do not assume these have not been modified. They are usually very short so take the time to review it before running it.

Chat / IRC / Jabber Edit

IRC Edit

  • impc - Irssi client.
  • iMPD - Irssi client which effectively uses mpc to communicated with MPD.
  • irssi-np - script that posts the song playing in mpd to an irc channel
  • - A client to control MPD through weechat
  • - This plugin lets you inform all users in the current channel about the song which music-player-daemon (MPD) is currently playing for weechat.
  • - A client to announce the song of weechat
  • xchat_mpd - MPD control script for Xchat. As of version 0.1 (current version), only supports track announce.
    • xchat_mpd_2 - MPD track announce for Xchat. Wrote because I was dissatisfied with other hacks and to try the MPD API.

Jabber Edit

  • MPDGajim - Very simple Python pseudo-daemon which updates Gajim's status to the current track. (Requires mpdclient2)
  • MPT - MPT (Music Player Tune) is a simple Python implementation of User Tune. It publishes the current song information through XMPP.
  • jmpc - jabber bot for controlling MPD.

Display Edit

  • MPD OSD - Uses python-osd to display an OSD of the current playing song + artist in the top-left corner of the screen.
  • mpd_osd - Dirty hack to display the title of the played song by OSD.
  • and - Two Shell scripts, the first draw the current track with xosd, and the second works with the latter to show an OSD when a new track is being played.
  • smpc - Micro script that works with dzen to show On-Screen info of mpc output.
  • mpdnotify - A simple bash script that uses Galago's libnotify to put up a notification with album art every song change.
  • - Simple python script that displays mpd status and song information (with album art) using libnotify.
  • - BASH script providing a kind of hack-y way to show terminal covers in the terminal. Uses either AA-lib or libcaca. AA-lib looks MUCH better, but doesn't automatically exit. Edit

  • bashfm - play streams with basic controls from command line
  • Python LastFMProxy - Python proxy to deliver to your MPD
  • mcf - A shell script that gives you easy MPD access to playing radio stations using mpc.
  • lastfmpdqc - lastfm/mpd queuing client. gets recommended tracks from and adds them from your library to mpd's current playlist.
  • MPD_sima - MPD_sima is a python script who's automagically adding title to your playlist following suggestions.
  • lfm - A bash script that abstracts the usage of URLs and autoplays the radio station of choice in mpd.
  • mpd-add-similar - A cli app that can add similar tracks to your MPD playlist.

Metadata Fetching Edit

  • lyrc - Fetches lyrics from (alternative: lyriki) Bash script, but there's also a zsh version.
  • mlyric - Fetches lyrics of the currently playing song, adds it to id3tag and displays it on stdout. If id3tag already has a lyric, this one will be displayed instead.
  • - A shell script for displaying lyrics with interactive programs, ie less
  • mpdlyrics - Shows lyrics of current song on w3m browser [you may change it] (fetchs it or read previously stored). Uses "feeling lucky" feature. Dirty bash script.
  • mpdlyricsonbrowser - Show lyrics of current song on a mozilla like browser.
  • mpdlyricsscript - A very working python mpd lyrics script. No extra dependencies!
  • Conkylyrics - show lyrics in a conky window on your desktop
  • lyrics-cli lyrics-cli fetches lyrics for the currently playing track in several players (including MPD) and prints it to stdout.
  • xlyrics creates window which contains lyrics (from LyricWiki) of currently playing track.
  • Conky-lyrics - Display song lyrics in conky (very light code)
  • - Uses glyr and eye3D to fetch and put cover.jpg files in your directory tree.

Searching Edit

  • mpdgrep - A simple bash script that plays the next song in your library matching that phrase.
  • zenfind - A simple expansion of mpdgrep that uses Zenity.

Other Edit

  • addrandom - Horrible hack to add random song to currently playing. Edit this example and make it better.
  • AMPDlogger - Small bash script to log tracks played with MPD to a plain text file.
  • - A script to convert APEv2 ReplayGain tags to ID3v2 ReplayGain tags which MPD can read.
  • arthist-recent - Dirty hack to let Artist display tracks in reverse chronological order
  • Hack:avahi mpd.service - announce mpd with avahi
  • Hack:avahi phpmp.service announce phpmp with avahi
  • bluempd - Hacks and instructions on using your bluetooth device to control MPD
  • copycurrent - Copies the currently playing song to a USB-Stick
  • dplay - MPD integration with Midnight Commander
  • favo-fiddle - volume fading, random volume manipulation
  • GDM - Enable multimedia keys on a multimedia keyboard to control mpd.
  • GoodSleep - Go to sleep and wake up with fading music, GUI provided
  • Hold Music Fader - Fade out background/hold music for a voiceover announcement and then fade the music back in.
  • ices-client - A Perl script for streaming MP3s to your Icecast server
  • itunes2mpd - A script to load a copied iTunes playlist into mpd.
  • - Bind notebook media keys to MPD using DBUS
  • mms2ogg - Convert mms streams to ogg using vlc. Intended for use with webradio streams in general and streamtuner in specific.
  • mms2mp3 - Convert mms streams to mp3 using vlc. Perfect for low-cost radio project
  • mpc-fade - Volume fading
  • mpckbd - Simple C program to respond to run mpc in response to keyboard events.
  • MPC / MPD Score command - Add support for scoring
  • mpc-pause - Bind this script to a key to toggle pause/play just like XMMS' --pause-play argument. (Deprecated to mpc toggle)
  • mpc-play - Play any file (e.g. outside mpdroot directory)
  • - A perl script that allows you to start mpd playing with a slowly increasing volume at a configurable time.
  • - A bash script that lets you select whether you want to choose a playlist, or by album, artist, or genre. Clears playlist, adds what you chose, starts playing.
  • - Allows you to export your MPD collection to a CSV (comma-separated values) file.
  • mpdfind - xmmsfind clone for mpd
  • - A perl script that will post notifications on song change.
  • mpd-handler - Copy a single musik file to the "mpd-root / single " folder and play it/or not. also handle m3u/pls playlists.
  • mpd-hiss - Another Growl notifier, written in Python.
  • mpd-hits - Collects playback statistics of Music Player Daemon.
  • - Likes current playing song on using notification-daemon. Also, deletes currently playing song from disk & playlist.
  • mpdipod - A script to sync mpd playlists to an ipod.
  • mpdplay - Another MPD integration within Midnight Commander. This one allows you to play every song in your filesystem.
  • mpdrecording-stream - A small shell script to recording/ripping currently playing broadcast internet radio stream to *.mp3
  • mpd-stats - Simple perl scripts to keep track of what mpd is playing and generate stats from it
  • mpdwiki - Shows wikipedia article about current mpd artist using w3m [you may change it].
  • MusicMagicMixer - script to use with mpc and Predixis MusicMagicMixer
  • musicplaynow - A tiny shell script for playing MP3 files from any location, even outside the music_directory (made for integration with desktop shells)
  • - A bash script that plays an alarm at a (nearly) specific time, at maximum volume.
  • - A shell script which will start playing a jingle at a certain moment in time.
  • play - Just type "play mygfavaoritealbum" and your favorite album is loaded. Very typo tolerant.
  • playstream - Smart handler for m3u and pls files.
  • playonremotempd - a bash script that uses netcat to server a local file to a remote mpd, play it and after song change remove it again
  • pyza - A Python script to play music from Songza stations through MPD.
  • ralbum - Simple C program that plays a random album.
  • - A wrapper around mp3gain that adds ReplayGain info to ID3v2 tags instead of APEv2 tags.
  • rubympd2html - a ruby script which creates a HTML file of all your mpd music.
  • state save - Save and restore MPD states on your localhost. (Made obsolete by the state file in config)
  • stop_after_current - A bash script that makes mpd stop after the currently playing song.
  • stream-monitor - Two scripts that monitor mpd while it is playing a stream. If the Time: status stops then it tries to have it play the stream again. Keeps the stream going 24/7.
  • streampush - Give this script a url, it'll add all the streams in that page.
  • streamup - Start and stop a stream seamlessly
  • Synchronator - Synchronator brings bit perfect volume control to Hi-Fi systems with Linux as source. This enables control of your Hi-Fi amplifier volume level from within any MPD client application a.o.
  • SystemV Init - Init Script to start and stop MPD via System V
  • TuneTwit - post to twitter what you're listening to on MPD. A perl script that runs as a daemon, updating Twitter whenever the track changes
  • update and add - first update, then add all music files
  • voyeur - A script to announce your currently playing song to the Mac OS Framework.
  • wecker.c - Small C program to start mpd playback with a slowly increasing volume, like
  • xmradio - A shell script to retrieve and play XM Radio mms streams using mimms and mpc/mpd.
  • playMPCRandomAd - A script that play random MP3 from a list (MP3 must be in the MPD DB)
  • - A script that tweets current playing song info via TTYtter
  • Hack:pause-on-screensaver - A shell script that pauses mpd on GNOME screensaver activation (i. e. when you lock your screen) and resumes it on deactivation
  • MPD Web Remote - A php file that shows your playlist and lets you change song (next and prev) and also volume (up and down), with customizable skins!
  • Youtube Playback: If you want to play the audio track of a youtube video, you have to add the actual stream url of that video. You can get that one for example with youtube-dl. Running youtube-dl -g URL gives you the stream url.
  • configure-mpd : a script to automagically make a mpd configuration file which turns mpd in a high quality bit perfect audiophile digital audio player.
  • mpd-shutdown : a script to shutdown computer when playing shutdown.mp3
  • mpdScheduler - a python script that runs as a daemon. It lets you set sleep timers and alarms via MPDs client channels

Playlist Edit

  • -  A python script designed to add the missing randomness to mpd's albums.
  • album - Lists all albums by given artist and replaces the playlist with them.
  • - Download all playlists from, convert them from .pls to .m3u and place them into the mpd-playlist-directory.
  • mpc-dmenu - Use dmenu to select a song from the current playlist.
  • mpc_playlist - uses mpc to add playlists beginning with special char.
  • mpc-show-playlist - a Perl script to show the current playlist, similar to how it was shown before mpc 0.18.
  • Mpdalbum - a shell script able to automatically fill your playlist with full albums and with some other nice features.
  • - Slightly alter the frequency that certain artists/albums/songs are played within an otherwise completely random playlist.
  • mpdNextAlbum - Jump to next or prev album (nice for remote control).
  • mpdpss (MPD Playlist Saver n' Switcher) - It will remember the last played song for each of your playlists. Can be controled via GUI, TUI, CLI, dmenu and wimenu.
  • mppledit - Playlist editor that uses your $EDITOR to manipulate the playlist.
  • mpdpl2html - a very simple shell script which creates a HTML file of your current playlist.
  • mpd-pruner - A small script to remove duplicate songs from your playlist.
  • mpd_random_playlist - Adds a number of files from the playlist to MPD.
  • rmprev - Removes previously played song from playlist. (obsoleted by consume mode)
  • prev-title - Skips to the previous title if playtime of currently playing title lower than 10 s (time adjustable in script) else it seeks to begin of currently playing title (same behavior like < MPD v0.16).
  • podcast-bounce - Provide a static URL to the top-most entry of podcasts or m3u/pls/asx playlists.
  • ralbumd - Simple C daemon that polls mpd and plays a random album when the current playlist is finished.
  • streammpc - A script that passes a playlist (m3u or pls formats currently supported) to a user selected choice between a local player and a remote MPD server.
  • mpdrandomd - A simple python daemon that lively enqueues single songs or entire albums (marked as "norandom") to the current playlist. Contains a script to complete the playlist with the end of the album after the current song.
  • mpdshuf - This moves songs randomly in your playlist. Might be useful as a "quick Shuffle" button.
  • - This script picks a random album from the current playlist. Can run as a daemon, selecting a random album from the playlist at the end of the current album (similar to amarok's album-shuffle mode) Daemon mode seems NOT to work on some systems anymore!
  • - A script that allows you to creates smart playlists, using various criteria to match track attributes (available matchers are regex, timestamp and time-delta).
  • - Pure-perl script to add random album to playlist. Prior to that it asks user for confirmation and gives opportunity to change either artist or just album.
  • - Perl script that adds a random album to the playlist or clear the playlist and play a random album. Can also monitor the playlist and add a random album when the last song in the playlist is reached.

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.