JSON Configuration Guide for Advanced Settings
Introduction
Download the JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"ad_instream_opener": {
"type": "array",
"title": "Instream Ads Opener URLs",
"description": "URLs for instream ad openers, if more than one are provided, one is picked randomly",
"items": {
"type": "string",
"examples": [
"https://streamabc-audio-content.s3.eu-central-1.amazonaws.com/sunshinelive/werbetrenner-ssl-3.wav"
]
}
},
"ad_instream_closer": {
"type": "array",
"title": "Instream Ads Closer URLs",
"description": "URLs for instream ad openers, if more than one are provided, one is picked randomly",
"items": {
"type": "string",
"examples": [
"https://streamabc-audio-content.s3.eu-central-1.amazonaws.com/sunshinelive/werbetrenner-ssl-3.wav"
]
}
},
"ad_force_preroll_opener": {
"type": "string",
"title": "Force Playing Preroll Opener",
"enum": ["true", "false", ""],
"description": "Force playing an opener even if no preroll ad is played, boolean string, provide true or false as string",
"examples": ["true", "false"]
},
"ad_force_preroll_closer": {
"type": "string",
"title": "Force Playing Preroll Closer",
"enum": ["true", "false", ""],
"description": "Force playing a closer even if no preroll ad is played, boolean string, provide true or false as string",
"examples": ["true", "false"]
},
"ad_preroll_opener": {
"type": "array",
"title": "Preroll Ads Opener URLs",
"description": "URLs for preroll ad openers, if more than one are provided, one is picked randomly",
"items": {
"type": "string"
}
},
"ad_preroll_closer": {
"type": "array",
"title": "Preroll Ads Closer URLs",
"description": "URLs for preroll ad closers, if more than one are provided, one is picked randomly",
"items": {
"type": "string"
}
},
"target_volume_db": {
"type": "number",
"description": "Target volume in dB for the stream, all ads will be normalized to this volume",
"example": -6
},
"ad_duration_max": {
"type": "integer",
"description": "The maximum duration of ads in seconds for a session before no further ads are played"
},
"timeshift": {
"type": "integer",
"readOnly": true,
"description": "NOT IMPLEMENTED"
},
"username": {
"type": "string",
"description": "Protect a stream with username and password, provide username here"
},
"password": {
"type": "string",
"description": "Protect a stream with username and password, provide password here"
},
"protected": {
"type": "string",
"enum": ["true", "false", ""],
"description": "Protect a stream, provide true or false as string"
},
"grace_time": {
"type": "integer",
"description": "Time in seconds after an instream ad is played before the next ad is requested",
"example": 1800
},
"grace_time_preroll": {
"type": "integer",
"description": "Time in seconds after an preroll ad is played before the next ad is requested",
"example": 900
},
"grace_time_reconnect": {
"type": "integer",
"description": "Time in seconds to detect reconnects and not play preroll ads",
"example": 30
},
"reconnect_error_noads": {
"type": "boolean",
"description": "Don't play ads if there had been errors detecting a reconnect. It needs a unique listener id provided by the player to work."
},
"capping": {
"type": "integer",
"description": "Time in seconds between reconnects to suppress preroll ads. It needs a unique listener id provided by the player to work.",
"example": 900
},
"burst": {
"type": "integer",
"description": "Send this much seconds of the stream on the beginning of the connection to the player as once. This helps filling the client buffer."
},
"adinjection": {
"type": "string",
"description": "Fine tune the ad injection mode. One of insert overlay replace replace_delay replace_inventory",
"examples": ["replace_delay", "replace_inventory"]
},
"drift_end": {
"type": "number",
"description": "Value in milliseconds to fine tune the end trigger for replacement. Can be negative or positive and moves the trigger point in time."
},
"geo_allow_countries": {
"type": "array",
"description": "Country codes that are allow to access the stream. If set, any listeners from other countries get blocked",
"items": {
"type": "string",
"examples": ["DE", "AT"]
}
},
"geo_disallow_countries": {
"type": "array",
"description": "Country codes that are not allowed to access the stream. If set, any listeners from these countries get blocked",
"items": {
"type": "string",
"examples": ["GB"]
}
},
"geo_fallback": {
"type": "string",
"description": "URL to a fallback stream that is played if the listener is blocked by geo restrictions",
"example": "https://api.streamabc.net/audiolibrary/file/content/sunshinelive/geo/SSL_UKStreamHinweis.mp3"
},
"geo_active_hours": {
"type": "array",
"description": "List of hours when geo restrictions are active.",
"items": {
"type": "integer",
"examples": ["20", "21"]
}
},
"log_metadata": {
"type": "boolean",
"readOnly": true,
"description": "INTERNAL USE ONLY: log all metadata events"
},
"hls_metadata": {
"type": "boolean",
"description": "EXPERIMENTAL: add metadata ID3 frames to HLS stream"
},
"adaptive_streaming": {
"type": "boolean",
"description": "Switch to lower bitrates in case of reconnects. Needs a unique listener id provided by the player"
},
"enhanced_parser": {
"type": "boolean",
"readOnly": true,
"description": "INTERNAL USE ONLY: use a different frame parser"
},
"trigger_beep_end": {
"type": "boolean",
"description": "The end of the beep triggers the ad injection instead of the start of the beep"
},
"blocked_agents": {
"type": "string",
"description": "Regular expression of user agents that are blocked and don't get access to the stream",
"example": "Current.*"
},
"blocked_aggregators": {
"type": "array",
"description": "List of aggregator names that are blocked and don't get access to the stream. Needs a qualified aggregator value provided by the stream url",
"items": {
"type": "string",
"examples": ["tunein", "radiode"]
}
},
"block_anonymous": {
"type": "boolean",
"description": "Block listeners of connections without a qualified aggregator value. Attention, this can affect a lot of listeners."
},
"blocked_fallback": {
"type": "string",
"description": "URL to an audio file that is played whenever a listener is blocked"
},
"no_ad_parameter": {
"type": "string",
"description": "Value fo the URL query string parameter \"context\" that disables ads for the listener",
"example": "5d50ajGfpU"
},
"adproxy_enabled": {
"type": "boolean",
"description": "Enable the use of our Adproxy solution"
},
"events_disabled": {
"type": "boolean",
"readOnly": true,
"description": "INTERNAL USE ONLY: disable all events"
},
"rmsi_user_profiles": {
"type": "boolean",
"description": "Use RMX to get user profiles for ad targeting"
},
"companionad_aggregators": {
"type": "array",
"description": "Aggregator values for requesting companion ads.",
"items": {
"type": "string"
}
},
"detailed_adlogs": {
"type": "boolean",
"readOnly": true,
"description": "INTERNAL USE ONLY: log all ad events"
},
"use_profiles": {
"type": "boolean",
"description": "EXPERIMENTAL: Use the provided profile_id and load all streamurl values from our profiles service. Needs changes on player side."
},
"request_gracetime": {
"type": "boolean",
"description": "Request ad servers even if affected by grace time but discard potentially ads. This helps keeping inventory high."
},
"adserver_params": {
"type": "object",
"description": "Additional parameters for the ad server request",
"additionalProperties": {
"type": "string"
}
}
},
"required": [],
"additionalProperties": false
}Using the JSON Schema
Last updated