Saturday, April 27, 2024
 Popular · Latest · Hot · Upcoming
3
rated 0 times [  3] [ 0]  / answers: 1 / hits: 9379  / 3 Years ago, sun, september 5, 2021, 1:28:26

I'm running an Ubuntu server environment with icecast-2.3.2 and ices-0.4.0 to enable internet-radio streaming.



I have a directory with music files, mostly MP3, let's call it /PATH/TO/MUSIC. I also have directories with jingles and podcasts. /PATH/TO/JINGLES and /PATH/TO/PODCASTS.



So far my server is up and running.



What works:




  • Creating daily random playlists from the music-directory using a script and a cron-job.

  • Running an IceCast2-Server and streaming the playlist file using IceS.



My question now is:




  • How to play podcasts and jingles at specific times? For example every full hour a certain jingle, or every Thursday at 8 p.m. a certain podcast?



I've tried to search the internet on this topic but it seems there is no "one final solution" for this radio-automation issue and it also seems a lot of solutions are rather hacky, aren't they?



Keep in mind this is a server environment, solutions with GUI wont help.



I appreciate any hints and experiences on this topic!


More From » server

 Answers
0

The answer is: liquidsoap.



liquidsoap, a swiss-army knife for multimedia streaming, notably used for netradios and webtvs. It has tons of features, it's free and it's open-source!



It took me some days to understand how streams are generated. liquidsoap consists of little scripts which describe the stream parameters. a simple script which loads and plays a mp3-playlist, let's call it basic.liq, is show below:


#!/usr/bin/liquidsoap

# load a playlist file
stream = playlist("/path/to/playlist.pls")

# output the playlist to icecast
source = output.icecast(%mp3, host="localhost", port="8000",
mount="listen.m3u", password="hackme")
source(stream)

test the script with:


liquidsoap --check ./basic.liq

and start the script with:


liquidsoap ./basic.liq &

but liquidsoap is much more powerful. for example, to play a jingle every full hour, simply add:


# add a jingle every full hour
jingle = single("/path/to/jingle.mp3")
add([stream,switch([({0m0s},jingle)])])

but a lot more features are described at the homepage:




  • static or dynamic playlists

  • time-based selection of the audio source

  • quota- or time-based insertions or mixes of jingles

  • live DJ interventions

  • interactive user requests

  • fully-customizable transitions, e.g. crossfading

  • speech-synthesis of track metadata

  • simple access to remote files

  • and much more



It's worth taking a look at the quick start guide, a more complex example and the documentation there.


[#33572] Monday, September 6, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
corsee

Total Points: 479
Total Questions: 122
Total Answers: 106

Location: Barbados
Member since Sat, May 9, 2020
4 Years ago
;