# Kawa-compatible configuration file with extensions [api] # # The HTTP port the MeteorLight API listens on. port=4040 # The HTTP bind address API will listen on. host="127.0.0.1" [queue] # # An HTTP GET is sent to this URL when MeteorLight's queue is empty and it needs a new # random track to play. The expected response is an arbitrary JSON blob that # MeteorLight stores in its queue. At a minimum, it must include the "path" property: # # { # "path": "/path/to/audio/file" # } # # The path is the path to an audio file on the filesystem you want MeteorLight to play. # It can also be an http(s) URL, that supports Range requests and returns proper Content-Length. # Additionally, the "title", "artist" and "art" properties can be included to be used as metadata. # If "title", "artist" are not specified, file tags may be used. # # If the key "hash" exists and song_fetch_url is set, # hash will be appended and downloaded from that location. random_song_api="http://localhost:8012/api/random" song_fetch_url="" # # An HTTP POST is issued to this URL when MeteorLight starts playing a track. The body # will be identical to the JSON blob in the queue. np="http://localhost:8012/api/np" # # An HTTP POST is issued to this URL when MeteorLight fetches a random track. The body # will be identical to the JSON blob in memory. # Can be left empty to not send nr events nr="http://localhost:8012/api/nr" # # When no tracks are available for whatever reason (such as external service # outages), this track will be played. fallback="/tmp/in.flac" # Length of buffer to maintain in KiB (not implemented) # buffer_len=4096 # Duration in seconds of buffer to maintain. Set 0 for automatic mode depending on requesting client. # Maximum 10 seconds. # Do note buffer is counted from end of frame, not start, for removal purposes. This depends on format and can be a second or so at times. buffer_duration=0 # # Apply replaygain track tags if existent on files played. # If ReplayGain tags are not existent, it will normalize audio with a running weighted window of 5 seconds. # ReplayGain tag overrides can be added as properties on track blobs: # { # "replay_gain" : { # "track_peak": 1.0000, # "track_gain": -3.15821 # } # } replaygain=false # Set the sample rate of the queue. Default is 44100 # If incoming audio is different than this sample rate, it will be resampled. # Some codecs (example: Opus) will output at a different samplerates. #samplerate=44100 # Set the sample format and bit depth of the queue. Default is int16 for sample format, and sample format size for bit depth. # If incoming audio has a different format / bitdepth than this sample rate, it will be converted. # See Kirika's Codec table (Decoder Sample Format) column. Conversion from int32 to int16 is fast. # Possible values (plus other aliases): i16, s16, int16, s16le, i32, s32, int32, int, s32le, f32, float, float32, f32le #sampleformat=int16 #bitdepth=0 [radio] # # The HTTP port to stream actual audio on. port=8001 # The HTTP bind address to stream actual audio on. host="127.0.0.1" # Name of the stream. name="my radio" # Description of the stream. description="" # URL of the stream. url="" # Logo URL of the radio logo="" # Whether to make the radio "private" via headers private=false # # A list of streams to make available at [radio.port]/*(mount) follows. The # following properties are available: # # mount: the HTTP address to serve the stream from. # # container: the container format to use (ogg, flac, aac/adts, or mp3). See Kirika's supported format list. # # codec: the audio codec to use (opus, vorbis, flac, aac, or mp3) # # bitrate: the desired bitrate of the stream in Kb/s, if not specified (or 0) an appropriate # bitrate will be automatically selected based on the container/codec # MeteorLight extension: bitrate can be a string (for example, v0-v9 on MP3). codec can also be he-aacv2. # # # Additionally further options can be set on some codecs. # - FLAC supports bitdepth (int) default 16, compression_level (int) default 8, block_size (int) default 0 = auto # - Opus supports complexity (int) default 10 # - AAC supports VBR bitrate (vbr1 - vbr5), mode (lc, he, hev2) and afterburner (bool) # - MP3 supports VBR bitrate (v0 - v9) # - All but Opus support setting samplerate (int), default queue sample rate. Opus is fixed at 48kHz. # - All support setting offset_start (bool) default true, rewrites packets PTS to align with the client start time. # - All support setting channels (int) to 1 or 2, default 2 [[streams]] mount="stream128.mp3" container="mp3" bitrate=128 [[streams]] mount="stream192.mp3" container="mp3" bitrate=192 [[streams]] mount="stream128.aac" codec="aac" container="aac" bitrate=128 [[streams]] mount="stream128.opus" container="ogg" codec="opus" bitrate=128 [[streams]] mount="stream192.vorbis" container="ogg" codec="vorbis" bitrate=192 [[streams]] mount="stream256.opus" container="ogg" codec="opus" bitrate=256 [[streams]] mount="stream.flac" codec="flac" # Also supports ogg container="flac"