# Liquidsoap

## Audio Stream Generation

### set_json_metadata.liq

    # s = some source

    # x is of type ((metadata)->unit)*source
    # first part is a function used to update
    # metadata and second part is the source
    # whose metadata are updated
    x = insert_metadata(s)

    # Get the function
    insert = fst(x)

    # Redefine s as the new source
    s = snd(x)

    # The handler
    def set_meta(~method,~protocol,~data,~headers,uri) =
      # Split uri of the form request?foo=bar&...
      # into (request,[("foo","bar"),..])
      x = url.split(uri)

      # Filter out unusual metadata
      meta = metadata.export(snd(x))

      # Grab the returned message
      ret =
        if meta != [] then
          insert(meta)
          "OK!"
        else
          "No metadata to add!"
      end

      # Return response
      http_response(
       protocol=protocol,
       code=200,
       headers=[("Content-Type","text/html")],
       data="#{ret}"
      )
    end

    # Register handler on port 700
    harbor.http.register(port=7000,"/setmeta",set_meta)

Download