Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


DudelDu is a simple audio/video streaming server using the SHOUTcast protocol.

Code coverage Go Report Card Go Doc


  • Supports various streaming clients: VLC, ServeStream, ... and most Icecast clients.
  • Supports sending of meta data (sending artist and title to the streaming client).
  • Playlists are simple JSON files and data files are normal media (e.g. .mp3, .nsv) files on disk.
  • Can be used as a stand-alone server or embedded in other Go projects.
  • Supports HTTP basic user authentication.

Getting Started (standalone application)

You can download a pre-compiled package for Windows (win64) or Linux (amd64) here.

You can also pull the latest docker image of DudelDu from Dockerhub:

docker pull krotik/dudeldu

Create an empty directory, change into it and run the following to start DudelDu:

docker run --rm --user $(id -u):$(id -g) -v $PWD:/data -p 9091:9091 krotik/dudeldu -host <playlist>

The container will have access to the current local directory and all subfolders.


DudelDu comes with a demo playlist. After extracting DudelDu switch to the directory examples/demo. Run ./ (Linux) or run_demo.bat (Windows) to start the server.

Open a browser and view the demo.html in the examples/demo directory. To access the demo streams you are prompted for a username and password. The credentials are:

username: web
password: web

You can also point your favourite audio streaming client (e.g. VLC) to the streaming URL:


The demo includes also a small video in the Nullsoft Streaming Video format (NSV). To see it point a video streaming client (e.g. VLC) to:


Note: By default you can only reach the streams via localhost. Use the -host parameter with a host name or IP address to expose it to external network peers.

Command line options

The main DudelDu executable has the following command line options:

DudelDu x.x.x
Usage of ./dudeldu [options] <playlist>
  -?	Show this help message
  -auth string
    	Authentication as <user>:<pass>
    	Enable extra debugging output
  -fqs int
    	Frame queue size (default 10000)
  -host string
    	Server hostname to listen on (default "")
    	Loop playlists
  -port string
    	Server port to listen on (default "9091")
  -pp string
    	Prefix all paths with a string
    	Shuffle playlists
  -tps int
    	Thread pool size (default 10)

Authentication can also be defined via the environment variable: DUDELDU_AUTH="<user>:<pass>"

Building DudelDu

To build DudelDu from source you need to have Go installed (go >= 1.12):

Create a directory, change into it and run:

git clone .

You can build DudelDu's executable with:

go build ./server/dudeldu.go

Building DudelDu as Docker image

DudelDu can be build as a secure and compact Docker image.

  • Create a directory, change into it and run:
git clone .
  • You can now build the Docker image with:
docker build --tag krotik/dudeldu .


DudelDu source code is available under the MIT License.