ezWeb is a webinterface to control ezStream for Icecast.

It features automatic rotation, scheduling, jingle-automation, track weighting and heavyness levels.

I've started coding this in 2007 for my then new webradio and abandonned work a year later. In 2017, I recoded this mess using modern tools and techniques. (see screenshots).
It's still under heavy development, but you may try it if you dare..?





  • Managable auto-queue
  • Track weightings
  • Jingle automation
  • Schedule planning
  • Track hardness levels (work in progress)
  • Comprehensive info on your tracks (work in progress)





  1. Create a MySQL Database and a special user to access it for reading and writing. (No admin rights needed)
    1. Import the included "database.sql" to create the structure and a default playlist.
  2. Copy contents of the folder "dist" to your webroot.
  3. Edit the ezWeb config located at assets/include/config.inc.php to match your environment.
  4. Setup ezStream to use ezWeb using the included ezstream.xml as an example.
  5. Make sure these files are executable by the user running ezstream:
    1. playlist.php
    2. np.php
    3. dbscan.php
    4. bin/ezweb.php



Most of your every-day-use is done at the webinterface itself and should be pretty self-explanatory. But there's a cli-tool, to, you need for adding new tracks and bulk-editing existing ones:

Import mp3 files

/path/to/ezweb/bin/ezweb.php addfile "<playlist name>" "<filename>"

Combine with find to bulk-add files:

find /path/to/mp3s -iname '*.mp3' -exec /path/to/ezweb/bin/ezweb.php addfile "<playlist name>" "{}" \;

Add file to playlist

/path/to/ezweb/bin/ezweb.php addtoplaylist "<playlist name>" "<filename>"


/path/to/ezweb/bin/ezweb.php removefromplaylist "<playlist name>" "<filename>"




You can download the latest development snapshot from my gitlab account. This includes everything you need to use and/or contribute to it.


If you just want to use it, use the contents of the folder "dist".
If you want to contribute use the build-environment inside the folder "src".
When using NetBeans, all you need to do is run "npm install" to reinstall all the grunt modules. The rest is included in the sources.

Build perquisites:


hi i try to make work
i get some error

1. PHP Fatal error: Call to undefined method mysqli_stmt::ge t_result() in /var/www/ezweb/assets/classes/tracks.class.php on line 97
2. ezstream: Connected to http://localhost:8200/listen
PHP Fatal error: Call to undefined method mysqli_stmt::ge t_result() in /var/www/ezweb/assets/classes/queue.class.php on line 111

missing dependency?
Hey Mat,
looks like you're missing the required mysqli libraries for php. For debian stretch the needed package is called "php-mysql", for jessie, it's "php5-mysqlnd".

5000 Characters left