You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
5.0 KiB
150 lines
5.0 KiB
# 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" |