Hacks
From Music Player Daemon Community Wiki
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.
To get these hacks as a group, or as a download, see mpd-hacks.
Contents |
[edit] Chat / IRC / Jabber
[edit] IRC
- 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
- mpd.py - A client to control MPD through weechat
- mpdnp.py - This plugin lets you inform all users in the current channel about the song which music-player-daemon (MPD) is currently playing for weechat.
- weempd.py - 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.
[edit] Jabber
- 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.
[edit] Display
- 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.
- mpd-osd.sh and mpd-new-track.sh - 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.
- mpd-notify.py - Simple python script that displays mpd status and song information (with album art) using libnotify.
[edit] Last.fm
- bashfm - play Last.fm streams with basic controls from command line
- Python LastFMProxy - Python proxy to deliver Last.fm to your MPD
- mcf - A shell script that gives you easy MPD access to playing last.fm radio stations using mpc.
- lastfmpdqc - lastfm/mpd queuing client. gets recommended tracks from last.fm 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 last.fm suggestions.
- lfm - A bash script that abstracts the usage of last.fm URLs and autoplays the radio station of choice in mpd.
[edit] Metadata Fetching
- lyrc - Fetches lyrics from lyrc.com.ar. (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.
- mpd_lyric.sh - 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
- mpdlyrics.rb - Script fetches lyrics from lyricwiki.org (as does Amarok) and displays them in your pager. Needs only Ruby and mpd. Works.
[edit] Searching
- 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.
[edit] Other
- play - Just type "play mygfavaoritealbum" and your favorite album is loaded. Very typo tolerant.
- 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.
- arthist-recent - Dirty hack to let Artist display tracks in reverse chronological order
- 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
- mpdplay - Another MPD integration within Midnight Commander. This one allows you to play every song in your filesystem.
- favo-fiddle - volume fading, random volume manipulation
- GoodSleep - Go to sleep and wake up with fading music, GUI provided
- mpc-fade - Volume fading
- mpdfind - xmmsfind clone for mpd
- 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)
- mpd-handler - Copy a single musik file to the "mpd-root / single " folder and play it/or not. also handle m3u/pls playlists.
- mpdwiki - Shows wikipedia article about current mpd artist using w3m [you may change it].
- streamup - Start and stop a stream seamlessly
- state save - Save and restore MPD states on your localhost.
- streampush - Give this script a url, it'll add all the streams in that page.
- SystemV Init - Init Script to start and stop MPD via System V
- update and add - first update, then add all music files
- MPC / MPD Score command - Add support for scoring
- MusicMagicMixer - script to use with mpc and Predixis MusicMagicMixer
- playstream - Smart handler for m3u and pls files.
- ices-client - A Perl script for streaming MP3s to your Icecast server
- mpd-growl.pl - A perl script that will post notifications on song change.
- mpd_alarm.pl - A perl script that allows you to start mpd playing with a slowly increasing volume at a configurable time.
- playAlarm.sh - A bash script that plays an alarm at a (nearly) specific time, at maximum volume.
- mpckbd - Simple C program to respond to run mpc in response to keyboard events.
- rg.py - A wrapper around mp3gain that adds ReplayGain info to ID3v2 tags instead of APEv2 tags.
- ape2id3.py - A script to convert APEv2 ReplayGain tags to ID3v2 ReplayGain tags which MPD can read.
- Hack:avahi mpd.service - announce mpd with avahi
- Hack:avahi phpmp.service announce phpmp with avahi
- mms2ogg - Convert mms streams to ogg using vlcIntended for use with webradio streams in general and streamtuner in specific.
- 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.
- ralbum - Simple C program that plays a random album.
- stop_after_current - A bash script that makes mpd stop after the currently playing song.
- mpd-stats - Simple perl scripts to keep track of what mpd is playing and generate stats from it
- musicplaynow - A tiny shell script for playing MP3 files from any location, even outside the music_directory (made for integration with desktop shells)
- mpdrecording-stream - A small shell script to recording/ripping currently playing broadcast internet radio stream to *.mp3
- playJingle.sh - A shell script which will start playing a jingle at a certain moment in time.
- voyeur - A script to announce your currently playing song to the Mac OS Framework.
- GDM - Enable multimedia keys on a multimedia keyboard to control mpd.
- xmradio - A shell script to retrieve and play XM Radio mms streams using mimms and mpc/mpd.
- mpd-collection2csv.py - Allows you to export your MPD collection to a CSV (comma-separated values) file.
- mpdipod - A script to sync mpd playlists to an ipod.
- itunes2mpd - A script to load a copied iTunes playlist into mpd.
[edit] Playlist
- album - Lists all albums by given artist and replaces the playlist with them.
- di.fm-playlists - Download all playlists from www.di.fm, 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.
- Mpdalbum - a shell script able to automatically fill your playlist with full albums and with some other nice features.
- mpd_weighted_playlist.py - 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).
- mppledit - Playlist editor that uses your $EDITOR to manipulate the 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)
- 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.
- mpd-random-pl-album.py - 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)
