ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Liquidsoap Как получить ссылка текущего mp3 файла

 

1
Dav @Dav
Всем привет!

Liquidsoap: Как получить ссылка текущего mp3 файла которая играет в текущий момент, и отправить get запрос ?
или как получить обложку трека ?



#!/usr/bin/liquidsoap

set("server.telnet",true)
set("log.stdout", true) # вывод в консоль
set("log.level", 3) # уровень логгирования - 3
set("log.file.path","radio.log") # дополнительно вывод в файл
set("tag.encodings",["UTF-8"])
set("harbor.bind_addr","0.0.0.0")
set("harbor.verbose",true)
set('harbor.timeout',30.)


set("audio.converter.samplerate.libsamplerate.quality","fast")
set("encoder.encoder.export", ["artist","title","album","genre","date","tracknumber","comment","track","year"])


day = playlist(mode='random',reload=1,reload_mode='rounds','/home/admin/web/collection/d')
night = playlist(mode='random',reload=1,reload_mode='rounds','/home/admin/web/collection/n')
jingles = playlist(mode='random',reload=1,reload_mode='rounds','/home/admin/web/collection/jingles')
jingles = once(jingles)

ins_day = rotate(weights = [1, 3], [jingles, day])
ins_night = rotate(weights = [1, 3], [jingles, night])

#music = fallback([ switch([({ 16h55m-17h55m }, ins_day),({ 17h55m-18h00m }, livedj),({ 18h00m-16h55m }, ins_night)]) ])
music = fallback([ switch([({ 6h-23h }, ins_day),({ 23h-6h }, ins_night)]) ])


meta = ref([])
# Update current metadata
# converted in UTF8
def update_meta(m) =
m = metadata.export(m)
recode = string.recode(out_enc="UTF-8")
def f(x) =
(recode(fst(x)),recode(snd(x)))
end
meta := list.map(f,m)

end

# metadata
music = on_metadata(update_meta,music)

# Return the json content
# of meta

def get_meta(~protocol,~data,~headers,uri) =
m = !meta
http_response(protocol=protocol,code=200,headers=[("Content-Type","application/json; charset=utf-8")],data="#{m}")
end

# Register get_meta at port 700
harbor.http.register(port=8001,method="GET","/setmeta",get_meta)


music = mksafe(music)
music = crossfade(start_next=6.0, fade_out=3.0, fade_in=3.0,music)



output.icecast(%mp3(samplerate=44100,stereo=true,id3v2=true,bitrate=64), url="https://radio.muzofan.net/", host = "localhost", port = 8000, password = "******", mount = "newlive",icy_metadata="true", name="Radio Muzofan", description="Radio Muzofan - слушать онлайн. Что играло в эфире и песни станции.",music)

Отредактировано Dav - 26.07.2022