Aller au contenu

Liquidsoap et Metadata


Jethro

Messages recommandés

Bonjour à tous,

 

Je teste actuellement la diffusion d'un flux audio vers Icecast avec Liquidsoap.

Je cherche à passer par Liquidsoap pour l'envoi des titres en cours vers Icecast mais également vers TuneIn.

J'utilise Winmedia comme automate de diffusion. Winmedia peut être configuré pour envoyer le titre en cours vers Icecast ou vers une url.

Mais je ne sais pas comment récupérer les infos avec liquidsoap.

 

Utilisez-vous Liquidsoap ? http://savonet.sourceforge.net/

Si oui, avez-vous une solution à mon problème ?

 

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

c'est grace a toi que j'avais survoler autre fois airtime donc maintenant liquidsoap ! :mrgreen: 

 

après tu lui envoie juste son ? ou juste une requête de donnée http?

 

 

 

 après pour du son je te conseil de faire un simple harbor 

live = input.harbor("test-harbor",port=8080,password="xxx")

Pour nos apis  sous un liquidsoap on utilises ce morceau la

# Update current metadata# converted in UTF8def 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# Apply update_metadata# every time we see a new# metadata#### DESSOUS REMPLACE LE S PAR LA DÉFINITION UTILE ####s = on_metadata(update_meta,s)#### DESSUS REMPLACE LE S PAR LA DÉFINITION UTILE ##### Return the json content# of metadef get_meta(~protocol,~data,~headers,uri) =  m = !meta  http_response(    protocol=protocol,    code=200,    headers=[("Content-Type","application/json; charset=utf-8")],    data=json_of(m)  )end# Register get_meta at port 700harbor.http.register(port=7000,method="GET","/getmeta",get_meta
Lien vers le commentaire
Partager sur d’autres sites

Merci Starm pour ta réponse.

 

J'ai testé en ajoutant la ligne : 

stream = input.harbor("test-harbor",port=8080,password="xxx")

à mon fichier .liq, en modifiant le password par le mot de passe du serveur icecast.

Voici mon fichier radio.liq modifié :

#!/usr/bin/liquidsoapstream = input.alsa(device="plughw:1,0", bufferize=false)stream = input.harbor("test-harbor",port=8080,password="xxx")output.icecast(%mp3(bitrate=320, samplerate=48000),host="xx.xx.xx.xx",port=8000,password="xxxx",mount="liquidsoap.mp3",name="Test Liquidsoap",genre="Music",description="Test Liquidsoap",stream)

Lorsque le lance la commande, ça semble fonctionner, j'obtiens juste une erreur :

strange error flushing buffer ... strange error flushing buffer ... 

Pour mieux comprendre votre système, à partir de quelque source récupérez-vous les metadata ?

Depuis une url local ? une url publique ? depuis votre système d'automate ou depuis Icecast ? 

 

 

Lien vers le commentaire
Partager sur d’autres sites

re, 

 

quand je regarde ton code il y a un truc que je comprend pas bien 

 

tu définis deux fois "stream"

(celui la est une carte son la plughw:1,0)

 stream = input.alsa(device="plughw:1,0", bufferize=false)

(celui la est une prise de live depuis un logiciel de live comme icecast qui écoute lui même un flux, pour le diffuser ensuite )

stream = input.harbor("test-harbor",port=8080,password="xxx")

 

alors la ligne suivante te permet de injecter du flux comme tu le ferais sur un icecast normal il accepte même les lives internes de la machine debian, ou les lives des animateurs distants.

stream = input.harbor("/mountpoint",port=8080numeroduportpourladiffusionlive,password="mot de passe")

pour ma source des métadata autant que api de sortie et non une entré d'information dans liquidsoap si tu veux faire une entré c'est plus getmeta mais setmeta

 

http://savonet.sourceforge.net/doc-svn/harbor_http.html

#### DESSOUS REMPLACE LE S PAR LA DÉFINITION UTILE ####s = on_metadata(update_meta,s)#### DESSUS REMPLACE LE S PAR LA DÉFINITION UTILE ####donc exemple si ma source est radiofrance alors en exemple radiofrance  = on_metadata(update_meta,radiofrance )
Lien vers le commentaire
Partager sur d’autres sites

après tu lui envoie juste son ? ou juste une requête de donnée http?

 

 

Je souhaite envoyer de l'audio et des données (Artiste - Titre)

#### DESSOUS REMPLACE LE S PAR LA DÉFINITION UTILE ####s = on_metadata(update_meta,s)#### DESSUS REMPLACE LE S PAR LA DÉFINITION UTILE ####donc exemple si ma source est radiofrance alors en exempleradiofrance = on_metadata(update_meta,radiofrance )

Et si ma source est une url ?

 

http://maradio.com/%artiste-%titre = on_metadata(update_meta, http://maradio.com/%artiste-%titre) ?

 

Désolé, y'a un truc qui m'échappe :-( 

Lien vers le commentaire
Partager sur d’autres sites

Si ta source est une url

 

regarde la fonction setmeta

 

en bas de page 

 

 

http://savonet.sourc...arbor_http.html  

 

pour ne pas te compliqué trop la tache  injecte ton audio comme un stream normal, comme pour transformer ton liquidsoap lui même en icecast..  les tags seront envoyer dans le stream et l'audio aussi 

stream = input.harbor("test-harbor",port=8080,password="xxx")output.icecast(%mp3(bitrate=320, samplerate=48000),host="xx.xx.xx.xx",port=8000,password="xxxx",mount="liquidsoap.mp3",name="Test Liquidsoap",genre="Music",description="Test Liquidsoap",stream)
Lien vers le commentaire
Partager sur d’autres sites

Je viens de voir tes modifications de tes posts.

 

tu définis deux fois "stream"

(celui la est une carte son la plughw:1,0)

 stream = input.alsa(device="plughw:1,0", bufferize=false)

(celui la est une prise de live depuis un logiciel de live comme icecast qui écoute lui même un flux, pour le diffuser ensuite )

stream = input.harbor("test-harbor",port=8080,password="xxx")

 

Oui, en fait, j'ai ajouté la ligne que tu m'avais mentionné à mon script original, d'où les deux "stream"

 

regarde la fonction setmeta

 

Je vais regarder ça, merci

J'attends des nouvelles de Winmedia sur la création d'une url contenant les metadata

pour ensuite l'intégrer à liquidsoap
 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Bonjour,

 

C'est bon du coté de WinMedia, les infos titres et artuistes sont envoyés vers le site web : http://www.urban-radio.com/titrage/title_winmedia.html

reste maintenant à trouver comment faire pour que Liquidsoap récupère ses infos et les transmette vers Icecast et TuneIn.

 

Si quelqu'un a la solution, je suis preneur ?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...