Skip to content

Live TV API

List channels, start playback, and read guide data.

Try it with a token

Use a bearer token from the Authentication flow for authenticated playback requests.

Channels

List channels

http
GET /api/livetv/channels
Authorization: Bearer <token>
bash
curl -sS \
  -H "Authorization: Bearer $OMNILUX_TOKEN" \
  http://your-server:4000/api/livetv/channels

Response:

json
[
  {
    "id": 1,
    "name": "Movies",
    "number": 1,
    "sourceType": "virtual",
    "scheduleMode": "shuffle",
    "alwaysOn": false,
    "category": "Movies",
    "logoUrl": "/artwork/channels/1/logo.jpg",
    "enabled": true
  }
]

Channel management exists in the admin surface, but this public page focuses on playback and guide consumption.

Stream playback

Watch a channel

http
GET /api/livetv/watch/:channelId
Authorization: Bearer <token>

Returns an HLS stream URL. For pre-warmed channels, this resolves immediately. For cold-start channels, the server starts the stream and long-polls until ready (up to 5 seconds).

Response: Redirects to live.m3u8.

bash
curl -i \
  -H "Authorization: Bearer $OMNILUX_TOKEN" \
  http://your-server:4000/api/livetv/watch/1

HLS manifest

http
GET /api/livetv/watch/:channelId/live.m3u8
Authorization: Bearer <token>

HLS manifest with 6-second segments and a 3-segment sliding window.

Authentication for playback should use the standard bearer-token flow documented in Authentication.

EPG

Get EPG data

http
GET /api/livetv/epg
Authorization: Bearer <token>
bash
curl -sS \
  -H "Authorization: Bearer $OMNILUX_TOKEN" \
  "http://your-server:4000/api/livetv/epg?start=2024-01-01T00:00:00Z&end=2024-01-02T00:00:00Z&channelIds=1,2"

Query parameters:

ParameterTypeDescription
startstringISO 8601 start time
endstringISO 8601 end time
channelIdsstringComma-separated channel IDs

Response:

json
{
  "channels": [
    {
      "id": 1,
      "name": "Movies",
      "programs": [
        {
          "title": "Die Hard",
          "start": "2024-01-01T20:00:00Z",
          "end": "2024-01-01T22:11:00Z",
          "description": "An NYPD officer...",
          "posterUrl": "/artwork/movies/562/poster.jpg"
        }
      ]
    }
  ]
}

Additional Live TV administration and external-client workflows exist in the product, but this public reference intentionally limits itself to core channel playback and guide access.