Devious Fish

pianod Launch pianod web remote
pianod2 includes the web remote with the software. Versions here may be more up to date.
legacy pianod remote



pianod2 is a free, multi-source, network-controlled music player daemon for use as central music server or scriptable backend. It is published under the MIT license.

  • Multiple sources. Mix your Pandora stations with your MP3 collection. Mix that all up with your mates’ collections. When listening, choose a single source or let the media manager integrate playlists from multiple sources (different users, accounts, or music services) into one big happy pile of music. DLNA (network media servers), podcast/feed-based services, and other music services are future goals.
  • Remote-control. Start, stop, choose or rate music from any modern web browser.
  • Shuffle mode. Mix by songs, playlist, album or artist, and queue up selections from your local collection.
  • Multi-user. Share control with your family, roommates or visitors—but pianod tracks ownership, allowing only the right person to revise each collection.
  • Automatic playlist selection. Each person rates playlists, and pianod adjusts the mix based on who is listening.
  • Multiple output zones. Different music in different zones for home automation scenarios.
  • Scriptable. Use the included piano script to control playback, runmix to set up a sequence of timed playlists, or write your own and interface via the socket interface (line-oriented or websockets, plain-text or TLS secured).
  • Flexible. Build with your choice of 3 media libraries, 3¾ output libraries, 5 TLS packages and 3 sources.
  • Media substitutions. Save bandwidth by substituting streaming media with matching local media.



2018–12–07 A chance over at Pandora is causing crashes. When using QuickMix, songs now report their playlist is the QuickMix, rather than their original playlist. pianod2 handles this by crashing (or asserting if compiled in debug mode).

r301 prevents crashing after each song, although I haven’t rigorously tested other features. Seed toggling for these songs won’t work, since they aren’t associated with their “real” playlist.

I suspect changing shuffle mode to shuffle-by-playlist will avoid all woes. I’ll be looking into it more as time permits.

2018–08–13 A Clang compile error and compatibility with FFmpeg 4.0 are in r300.

If you encounter problems, please report them to the developer or the mailing list.


Three clients are included with pianod2:

  • Standard client. Made for using pianod.
  • Console. Made for testing, debugging and nerds, the console provides command line access. Commands entered in one of the inputs (or selected from a list) execute, displaying results in a table.
  • Viewer. The console displays album art and information in large, friendly letters. Suitable when you just want people to know what’s playing.

Project needs

  • Translators: Included are English, German, French and Spanish. Translations were done with software; there may be errors or awkward phrasing. If you want to translate for another language, or want to improve existing translations, take a look at the .lang files in the Development downloads and mail new or updated files to peretteのdeviousfish dot com. SVN access may also be arranged by request.

Similar & Related Projects

  • pianod, the original version.
  • Orchid, a precompiled edition of pianod2 for Mac OS X.
  • Pandora’s official clients are available from Pandora.
  • pianobar is a terminal-mode Pandora client (and the origin of libpiano—thanks PromyLop). It is interactive, with keystroke commands instead of full statements, but has event support which runs a shell script or whatnot to do scrobbling or other things.
  • Tomahawk is another multi-source, social music player but as an application rather than a daemon.
  • Elpis is a Windows Pandora client
  • Pithos is a Linux Pandora client
  • mserv is a similar-style jukebox for local media (and I’ve stolen back my enhanced search algorithm that those guys never integrated into their code base.)
  • mpd, the music player daemon

Thanks to all those, too numerous to list, who created and maintain the included and non-included packages. Thanks also to those responsible for the tools and artwork on which pianod depends: Dimitri van Heesch for Doxygen, Microsoft for TypeScript, everyone behind C++ and the STL, Liz Aragon for the piano and football/soccer ball, Fletcher Penny for multimarkdown, and everyone at MacPorts for making package management manageable.