ϹοδεMεδιϲ
ϹοδεMεδιϲ

Reputation: 2938

On-demand audio streaming

Has anyone come across a software that can dynamically stream an arbitrary source identified by an HTTP URL.

I am looking for a server based software that can expose a RESTful interface to take in the definition of the playlist and respond back with a stream URL, that would playback the playlist. The sound files in the playlist are located on a different system accessible via HTTP.

I did take a look at liquidsoap project, but couldnt figure out how to wrap that into a RESTful webservice.

Upvotes: 3

Views: 2154

Answers (1)

Alfred Godoy
Alfred Godoy

Reputation: 1043

It would be quite a hassle to implement a RESTful server in liquidsoap. I would build the RESTful webservice in whatever "ordinary" web programming language, like PHP, and then let liquidsoap call the same service to get the tracks/files. In this example, a GET request to http://127.0.0.1/next should return one http url to a mp3/ogg/whatever.

(Example code for liquidsoap version 1.0 - this example will not run on earlier 0.x-something versions)

def autopilot() =
  def result()
    result =
      list.hd(
        get_process_lines('curl http://127.0.0.1/next')
      )
    request.create(result)
  end
  audio_to_stereo(request.dynamic(result))
end

radio =
  mksafe(
    autopilot()
  );

output.icecast(%mp3(samplerate=44100, stereo=true, bitrate=128),
  host="127.0.0.1",
  port=8000,
  password="secretpassword",
  mount="radio.mp3",
  radio
);

In this example, you would need an icecast2 server to send the stream to.

Upvotes: 2

Related Questions