Master source quit working [solved]
  • Hi, for some reason, my master input source quit working... The logs show that the source is connecting, yet the audio is never switched over. it stays on the fallback. Can you guys help and see what I might have gotten rid of in this file by mistake?   This is Airtime 2.5.1 on Debian 8.

    Log:
    2015/08/03 22:17:53 [lang:3] master connected
    2015/08/03 22:17:53 [decoder:3] Method "MAD" accepted "audio/mpeg".
    2015/08/03 22:17:53 [lang:3] /usr/lib/airtime/pypo/bin/liquidsoap_scripts/notify.sh --source-name=master_dj --source-status=true &
    2015/08/03 22:17:53 [threads:3] Created thread "harbor source feeding" (3 total).
    2015/08/03 22:17:53 [master_harbor:3] Decoding...
    2015/08/03 22:17:53 [stdout:3]
    2015/08/03 22:17:53 [stdout:3] #########################################
    2015/08/03 22:17:53 [stdout:3] #           *** pypo  ***               #
    2015/08/03 22:17:53 [stdout:3] #     pypo notification gateway         #
    2015/08/03 22:17:53 [stdout:3] #########################################
    2015/08/03 22:18:12 [server:3] New client: localhost.
    2015/08/03 22:18:12 [server:3] Client localhost disconnected.

    I've attached my ls_script.liq.

    Post edited by Nolan Wagner at 2016-01-04 23:48:23
  • 11 Comments sorted by

  • I have a fix. in ls_script, there are these two functions: 

    #auth function for live stream
    def check_master_dj_client(user,password) =
        log("master connected")
        #get the output of the php script
        ret = get_process_lines("python /usr/lib/airtime/pypo/bin/liquidsoap_scripts/liquidsoap_auth.py --master #{user} #{password}")
        #ret has now the value of the live client (dj1,dj2, or djx), or "ERROR"/"unknown" ...
        ret = list.hd(ret)

        #return true to let the client transmit data, or false to tell harbor to decline
        ret == "True"
    end

    def check_dj_client(user,password) =
        log("live dj connected")
        #get the output of the php script
        ret = get_process_lines("python /usr/lib/airtime/pypo/bin/liquidsoap_scripts/liquidsoap_auth.py --dj #{user} #{password}")
        #ret has now the value of the live client (dj1,dj2, or djx), or "ERROR"/"unknown" ...
        hd = list.hd(ret)
        log("Live DJ authenticated: #{hd}")
        hd == "True"
    end

    They are referencing the incorrect absolute path for liquidsoap_auth.py. If you change it to the correct path (in my case /usr/local/lib/python2.7/dist-packages/airtime_playout-1.0-py2.7.egg/liquidsoap/liquidsoap_auth.py) it will solve it. Do a search for liquidsoap_auth.py on your system to ensure that this is the correct location. 

    So the correct code should be 

    #auth function for live stream
    def check_master_dj_client(user,password) =
        log("master connected")
        #get the output of the php script
        ret = get_process_lines("python /usr/local/lib/python2.7/dist-packages/airtime_playout-1.0-py2.7.egg/liquidsoap/liquidsoap_auth.py --master #{user} #{password}")
        #ret has now the value of the live client (dj1,dj2, or djx), or "ERROR"/"unknown" ...
        ret = list.hd(ret)

        #return true to let the client transmit data, or false to tell harbor to decline
        ret == "True"
    end

    def check_dj_client(user,password) =
        log("live dj connected")
        #get the output of the php script
        ret = get_process_lines("python /usr/local/lib/python2.7/dist-packages/airtime_playout-1.0-py2.7.egg/liquidsoap/liquidsoap_auth.py --dj #{user} #{password}")
        #ret has now the value of the live client (dj1,dj2, or djx), or "ERROR"/"unknown" ...
        hd = list.hd(ret)
        log("Live DJ authenticated: #{hd}")
        hd == "True"
    end

  • Woah Nolan Wagner, you are the man!! Your solution solved my issue BUT, instead of modifying any file I just did a link:

    ln -s /usr/local/lib/python2.7/dist-packages/airtime_playout-1.0-py2.7.egg/liquidsoap/liquidsoap_auth.py /usr/lib/airtime/pypo/bin/liquidsoap_scripts/liquidsoap_auth.py
    Post edited by Bashatee Radio at 2016-10-01 08:29:22
  • Going to try uninstalling and installing the newest version of airtime. Will update once completed if issues are solved.
  • This software really isn't ready for Deb 8 yet...
  • It's more of a pain in the rear to downgrade to wheezy and reinstall EVERYTHING than it is to try to get airtime working on Jessie.

    I'm mostly running off of my ls_script anyways, the source input would just be nice to have as well.

    Edit: I think it might have broken when I had to move the installation to a new raid array... something in the migration might have messed up. 
    Post edited by Nolan Wagner at 2015-08-05 01:38:17
  • Just to update, I can now play content from airtime (before I couldn't). However when I try to log into the master source through airtime I'm getting a 401 error on my streaming client (Authentication required). I'm using the same details set in the panel.

    I will continue to troubleshoot to see if I can find anything.

    Edit new logs: 
    2015/08/05 00:52:48 [server:3] New client: localhost.
    2015/08/05 00:52:48 [server:3] Client localhost disconnected.
    2015/08/05 00:52:50 [lang:3] master connected
    2015/08/05 00:52:58 [server:3] New client: localhost.
    2015/08/05 00:52:58 [server:3] Client localhost disconnected.
    2015/08/05 00:53:08 [server:3] New client: localhost.
    2015/08/05 00:53:08 [server:3] Client localhost disconnected.
    2015/08/05 00:53:17 [lang:3] master connected
    2015/08/05 00:53:17 [lang:3] master connected
    2015/08/05 00:53:18 [server:3] New client: localhost.
    2015/08/05 00:53:18 [server:3] Client localhost disconnected.
    2015/08/05 00:53:19 [lang:3] master connected
    Post edited by Nolan Wagner at 2015-08-05 00:54:46
  • Would anyone happen to know where the best place to look would be? It's almost like the information isn't sent to liquidsoap for the master source, but I'm not sure how to test that... Is there a way I can hard code the password into the config somewhere?
  • Why bang your head against the wall when Debian 7 still works just peachy? 8 functionality will be sketchy at best until it's properly supported.
  • I'm stubborn :(
  • Thing is though, they can't expect people to use Wheezy forever. Support for it will eventually end, so they'll have to update. Until then I'll stick with things the way they are, or create the mountpoints in icecast for a break in manually.
  • Main patch absolutely works.. Everyone on 2.52.2 needs to do this!
    Post edited by John Chewter at 2017-05-29 22:33:24
    No longer using Airtime or Libretime.