Skip to main content

Lineup

The lineup is the file ersatztv runs: ersatztv <lineup.json>. It sets the HTTP server, where channels write their HLS output, and which channels exist. ersatztv add-lineup creates one, and ersatztv add-channel adds channels to it.

  • A relative path is relative to the lineup file.
  • version is the format version of the file. See Config Versions.
  • For validation and completion in an editor such as VS Code, set $schema to the JSON schema, https://ersatztv.org/schema/lineup/0.0.1.json. ErsatzTV Next ignores $schema.
  • Since is the first lineup version with the property. A property marked unreleased is on main and not in a release yet.
{
"version": "https://ersatztv.org/lineup/version/0.0.1",
"output": { "folder": "./hls" },
"channels": [
{ "number": "1", "name": "Channel 1", "config": "./channels/1/channel.json" }
]
}

Top level​

Server settings: where to listen, where to write HLS output, and which channels to serve.

channelsRequired

The channels to serve, in playlist order.

outputRequired

Where channels write their HLS output.

server

HTTP server settings.

Default value
{
"bind_address": "0.0.0.0",
"port": 8409
}
version

Schema version URI, e.g. "https://ersatztv.org/lineup/version/0.0.1"; missing is 0.0.0.

xmltv

Where to find guide data for /xmltv.xml. Unset serves channels without programmes.

Server​

server
bind_address

IP address to listen on. 0.0.0.0 listens on all IPv4 interfaces.

port

TCP port to listen on.

Output​

output
folderRequired

Folder for HLS output. Each channel writes to a subfolder named after its number. A relative path is relative to the lineup file.

XMLTV​

xmltv
folderRequired

Folder of per-channel guide files named {tvg_id}.xml. Their programme elements are copied into /xmltv.xml; a missing file is skipped. A relative path is relative to the lineup file.

Channel​

channels[]

Each channel's settings are in its own channel.json.

configRequired

Path to the channel's channel.json. A relative path is relative to the lineup file.

group

Channel group in the M3U playlist (/channels.m3u), sent as group-title. Not used in the XMLTV guide.

logo

Logo URL, sent as tvg-logo in the playlist and icon in the guide.

nameRequired

Channel name shown in the M3U playlist and XMLTV guide.

numberRequired

Channel number, e.g. 1 or 2.1. Used in URLs (/channel/{number}.m3u8) and as the name of the channel's output subfolder, so it must be unique.

overlays

Paths to channel config overlays, merged over config in order. An overlay value replaces the base value, and null removes the key. Each overlay must carry its own version. A relative path is relative to the lineup file.

tvg_id

Guide ID that links the playlist entry to its XMLTV channel and names its guide file. Unset is ersatztv.{number}.