MeteorLight/example_config.toml

150 lines
5.0 KiB
TOML

# 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"