Hi Martin,

Thank you for the suggestion -- when I do that, I get a different error:

> At sparetire.liq, line 21, char 84-89:
> Error 5: this value has type
>   unit (inferred at sparetire.liq, line 19, char 8-37)
> but it should be a subtype of
>   source(_)

Is it complaining about the signature of my callback? I'm not sure how to adapt 
it.

Thanks very much for your help!

Erik

On Thu, Jun 9, 2022, at 2:09 PM, Martin Kirchgessner wrote:
> Hello Erik,
> 
> Have you tried radio.on_track(post_metadata) ?
> 
> 
> Martin
> 
> Erik Schoster a écrit le 09/06/2022 à 18:01 :
>> Hi all,
>> 
>> Happy liquidsoap user here, thank you for a wonderful system!
>> 
>> I'm trying out upgrading from 1.x to 2.x and am running into a problem with 
>> a call to on_track in my old script.
>> 
>> Under liquidsoap 2.0.5 running my script results in:
>> 
>>> At sparetire.liq, line 19, char 8-17:
>>> Error 4: Undefined variable on_track
>> 
>> Removing the call to on_track allows the script to run. I'm using it to pass 
>> the metadata from the most recently played track to a python script which 
>> relays it elsewhere for display on a website.
>> 
>> I looked through the documentation and upgrade notes and couldn't seem to 
>> find info about this, my apologies if it's already documented somewhere!
>> 
>> My complete script looks like (with some things removed):
>> 
>>> #!/usr/bin/liquidsoap
>>> 
>>> set('encoder.encoder.export', ['artist', 'title', 'album', 'composer', 
>>> 'comment'])
>>> set('log.file.path', '')
>>> set('log.stdout', false)
>>> set('harbor.bind_addr', '127.0.0.1')
>>> 
>>> url = '
>>> streamuser = ''
>>> streampass = ''
>>> 
>>> sparetirerandom = nrj(playlist('playlist.m3u', mode='normal', 
>>> reload_mode='watch'))
>>> radio = mksafe(sparetirerandom)
>>> 
>>> def post_metadata(m) = 
>>>     system("/usr/bin/python3 sparetire_info.py "^quote(m['artist'])^" 
>>> "^quote(m['title'])^" "^quote(m['album'])^" "^quote(m['composer'])^" 
>>> "^quote(m['comment']))
>>> end
>>> 
>>> radio = on_track(post_metadata(), radio)
>>> 
>>> output.icecast(%mp3(bitrate=256, samplerate=44100, internal_quality=0, 
>>> id3v2=true), radio, 
>>> host='localhost', port=8000, user=streamuser, password=streampass, 
>>> description='SPARETIRE radio', url=url, genre='Freeform', 
>>> mount='sparetire', name='SPARETIRE radio')
>> 
>> Is there another way I can accomplish passing metadata to my python script? 
>> Thank you!
>> 
>> Erik
>> 
>> 
>> _______________________________________________
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> 
> 
> 
> 
> _______________________________________________
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
> 
_______________________________________________
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to