stationname="***" out = output.icecast( host = "127.0.0.1", port = 8000, password = "***", encoding = "UTF-8", name = "***", genre = "***", url = "http://#{stationname}", ) homeradio = "/home/radiocontent" #домашняя категория dirtracks = "#{homeradio}/tracks" #каталог с треками dirpromo = "#{homeradio}/promo" #каталог информационными вставками plmain = playlist(mode="randomize", reload=360, "#{dirtracks}") # перечитывает каталогл без плейлиста plpromo = playlist(mode="randomize", reload=360, "#{dirpromo}") plmain = crossfade(start_next=5., fade_out=3., fade_in=3., plmain) #затухание переходов plout = rotate(weights = [1, 2], [plpromo, plmain]) #1 промо, 2 трека #изминение metadata def appendmeta(m) = artist = m["artist"] title = m["title"] [ ("artist", if artist=="" then "Live #{stationname}" else "#{artist}" end), ("title", if title=="" then "radiostation" else "#{title} - #{stationname}" end) ] end plout = map_metadata(appendmeta, plout) #чтение metadata и запись в бд def myshowmeta(m) = artist = m["artist"] title = m["title"] print("Now playing: #{artist}, #{title}") system("redis-cli PUBLISH metadata '#{artist}:#{title}'") end plout = on_metadata(myshowmeta,plout) out(%mp3(bitrate=320, stereo=true), description = "HH320", mount = "hhf", mksafe(plout))
2016/03/03 08:58:59 [promo:3] Finished with "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3". 2016/03/03 08:58:59 [tracks:3] Prepared "/home/radiocontent/tracks/DKT \208\150\208\164 \226\128\147 \208\191\208\187\208\181\208\188\209\143 \208\180\209\139\208\188\208\176 (\209\129\208\177\208\190\209\128\208\189\208\184\208\186 \208\187\208\181\209\135\208\181\208\177\208\189\208\176\209\143 \208\179\209\128\209\143\208\183\209\140).mp3" (RID 3). 2016/03/03 08:58:59 [promo:3] Prepared "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3" (RID 4). 2016/03/03 08:58:59 [decoder:3] Method "MAD" accepted "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3". 2016/03/03 08:58:59 [stdout:3] Now playing: Live radio.rrrrrrrrr.ru, radiostation 2016/03/03 08:58:59 [stdout:3] 0 2016/03/03 08:59:10 [promo:3] Finished with "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3". 2016/03/03 08:59:10 [promo:3] Prepared "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3" (RID 5). 2016/03/03 08:59:10 [quota_4712:3] Switch to cross_4707 with forgetful transition. 2016/03/03 08:59:10 [stdout:3] Now playing: Live radio.rrrrrrrrr.ru, radiostation 2016/03/03 08:59:10 [stdout:3] 0 2016/03/03 09:01:19 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/BARTRU feat. \208\150\208\164, \208\148\208\190\208\183\208\176, \208\161\208\190\208\189\208\179(\208\165\208\176\209\130\209\133\209\131\209\128 \208\151\209\131) \226\128\147 \208\160\209\131\208\186\208\184..mp3". 2016/03/03 09:01:29 [tracks:3] Finished with "/home/radiocontent/tracks/DKT \208\150\208\164 \226\128\147 \208\191\208\187\208\181\208\188\209\143 \208\180\209\139\208\188\208\176 (\209\129\208\177\208\190\209\128\208\189\208\184\208\186 \208\187\208\181\209\135\208\181\208\177\208\189\208\176\209\143 \208\179\209\128\209\143\208\183\209\140).mp3". 2016/03/03 09:01:29 [tracks:3] Prepared "/home/radiocontent/tracks/BARTRU feat. \208\150\208\164, \208\148\208\190\208\183\208\176, \208\161\208\190\208\189\208\179(\208\165\208\176\209\130\209\133\209\131\209\128 \208\151\209\131) \226\128\147 \208\160\209\131\208\186\208\184..mp3" (RID 6). 2016/03/03 09:01:29 [stdout:3] Now playing: BAR&TRU feat.ÆÔ,Äîçà, Ñîíã(Õàò, Ðóêè. - radio.rrrrrrrrr.ru 2016/03/03 09:01:29 [stdout:3] 0 2016/03/03 09:05:44 [tracks:3] Loading playlist... 2016/03/03 09:05:44 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\145\208\149\208\147\208\163\208\157\208\158\208\154 \208\191.\209\131. \208\161\209\130\208\176\209\129\208\148\208\184 \208\188\209\131\208\183.\208\161\209\130\208\176\209\129\208\148\208\184.mp3". 2016/03/03 09:05:44 [tracks:3] Playlist is a directory. 2016/03/03 09:05:44 [tracks:3] Successfully loaded a playlist of 47 tracks. 2016/03/03 09:05:44 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\164\208\144\208\157\208\162\208\158\208\156 \208\191.\209\131. Grodilagro \208\188\209\131\208\183.NUKE BEAT LAB.mp3". 2016/03/03 09:05:54 [tracks:3] Finished with "/home/radiocontent/tracks/BARTRU feat. \208\150\208\164, \208\148\208\190\208\183\208\176, \208\161\208\190\208\189\208\179(\208\165\208\176\209\130\209\133\209\131\209\128 \208\151\209\131) \226\128\147 \208\160\209\131\208\186\208\184..mp3". 2016/03/03 09:05:54 [tracks:3] Prepared "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\164\208\144\208\157\208\162\208\158\208\156 \208\191.\209\131. Grodilagro \208\188\209\131\208\183.NUKE BEAT LAB.mp3" (RID 9). 2016/03/03 09:05:54 [stdout:3] Now playing: Live radio.rrrrrrrrr.ru, radiostation 2016/03/03 09:05:54 [stdout:3] 0 2016/03/03 09:08:32 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/\208\161\208\176\209\136\208\176 \208\156\208\181\208\187 \226\128\147 \208\160\208\190\208\183\208\176 \208\189\208\181 \208\183\208\176\208\188\208\181\209\128\208\183\208\176\208\185.mp3". 2016/03/03 09:08:41 [tracks:3] Finished with "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\164\208\144\208\157\208\162\208\158\208\156 \208\191.\209\131. Grodilagro \208\188\209\131\208\183.NUKE BEAT LAB.mp3". 2016/03/03 09:08:41 [tracks:3] Prepared "/home/radiocontent/tracks/\208\161\208\176\209\136\208\176 \208\156\208\181\208\187 \226\128\147 \208\160\208\190\208\183\208\176 \208\189\208\181 \208\183\208\176\208\188\208\181\209\128\208\183\208\176\208\185.mp3" (RID 10). 2016/03/03 09:08:41 [stdout:3] Now playing: Саша Мел, Роза не замерзай - radio.rrrrrrrrr.ru 2016/03/03 09:08:41 [stdout:3] 0
plout = rotate(weights = [1, 2], [plpromo, plmain]) #1 промо, 2 трека
plmain = crossfade(start_next=5., fade_out=3., fade_in=3., plmain) #затухание переходов
liquidsoap -h rotate
liquidsoap -h crossfade