Clone wiki

Shampoo / Home


All you ever need to easily administer and automate your Internet radio stations.

Shampoo is an all-in-one web platform that allows you to create, manage, and deliver to streaming servers and listeners your own webradios and radio shows.

Key features

  • Build your radio stations from the ground up
    • It handles all aspects of webradio design and maintenance.
    • Everything is controlled from the same user interface.
    • Perform all tasks remotely, using your desktop computer, your laptop, or your smartphone, connected to the Internet.
  • Nothing is too big, or too small.
    • You can host your own unique webradio, or manage a farm of radio stations.
    • Host everything on a single server, or delegate each task (track storage, streaming module, etc) on different machines.
    • It's an open platform, you can plug in alternative modules if required
  • Work as a team, and collaborate
    • Users are given distinct credentials to interact with the webradios: each collaborator has his own role and responsibilities.
    • Content can be shared by different webradios, or are kept private.
    • Collaborators can participate in more than one webradio, with different rights if needed
  • And it's free







What it can do

  • Stream MP3, AAC(+), Flac and Ogg Vorbis media formats to webradio servers, or to your sound card.
  • Relay your live performances. They are fully integrated within your radio scheduling.
  • Build intelligent automated playlists for your radio shows, the most complete and fine-grained solution around.
  • Keep track of what's been played on your radios, what is currently playing, and what will be played, at any time.
  • Control the content in real-time.
  • Plan and organize complex timetables. Schedule events that will happen very soon, or in a distant future. Manage reruns.
  • Build your content on the go, upload and organize your media files quickly and easily.
  • Store your media collection at a distance (FTP, NFS), or locally on your disks.
  • Everybody loves album cover art pictures, and illustrations in general, so they're included, about everywhere.
  • Cleanly separate roles and access rights for every user, lots of collaborators can work together efficiently, without risking any security issues.
  • Vote and rate contents.
  • Handle listener requests.
  • Integrate features directly within your websites or blogs.
  • Everything can be configured and customized the way you like.
  • Batch track importer, with Discogs look-up.
  • Export time-based reports for copyright collecting agencies.

See it in action

  • Shampoo is currently in production here. Channels are open for registration so you can explore and test some features as a Listener.
  • For an example of usage of the 'Now Playing' module of the public webservice you can go there.

How it works

Shampoo borrows key concepts from 'traditional' radio station management:

  • Radio stations are internally called Channels.
  • Each Channel is linked to a Streamer, which is an external process dedicated to broadcasting its content to listeners.
  • Channels are composed of Programmes, which are basically radio shows. A Programme can be shared by more than one Channel if needed.
  • Users, as people who can log in and interact with Shampoo, can control specified Channels, Programmes and other objects that are part of those objects, according to their credentials. Those credentials define specific roles for Users, borrowed from 'traditional' radio management, such as 'programme managers', 'presenters', etc. Administrators are a special kind of Users who can control everything, without restriction.
  • Each Channel is bound to a Timetable. A Timetable is composed of several Timetable slots, each Timetable slot is bound to a specific Playlist from a Programmme and specifies when it should be played, broadcast, and then stopped.
  • Programmes contain Playlists. A Playlist defines what should be played and broadcast, like sequences of Tracks or a Live.
  • Tracks are sound files, MP3s, OGG Vorbis, FLAC, etc. Tracks are specific to Programmes, thus they can only be programmed in Playlists belonging to those Programmes.
  • Lives corresponds to events not directly controlled by Shampoo and delegated to the Streamer for handling, within the bounds of the Playlist and Timetable slot it belongs to. Lives are mostly useful for running real-time performances and live talk shows.

Shampoo is a web application, written in Java, that is composed of a core and several modules.

  • Data are stored in a database of your choice (MySQL, PostgreSQL, Oracle, etc.)
  • Loose music tracks and pictures are collected in a datastore (FTP server, local file system, etc)
  • It communicates via a private webservice (REST) with streaming servers (Liquidsoap is the main target at the moment) for broadcasting.
  • A public webservice (REST) is available to websites, blogs, widgets, etc in order to access basic radio features such as tracklistings, ratings and votes, timetables, a "currently playing" and "what's next" functionality, and track requests.
  • It also provides a Javascript (GWT) web interface for interacting with users for everything related to webradio administration.


Objects coloured in light blue are part of the Shampoo package.


Be sure to check the installation procedure before proceeding to the download.

Shampoo is currently in beta stage, there's no official release yet. Automated builds can be downloaded from the Snapshots directory. The source code is available via SVN.

Report bugs and ask for new features on our project tracker.

How to compile from source

It's licensed under the terms of the Affero General Public License version 3.


Installation Guide

User Guide

Quick Tutorials

Developer's Guide