Skip to main content
Kernel always prefers direct play over transcoding. These endpoints tell you which one you’re getting and hand you the right URL; you don’t need to decide that yourself.

On-demand (VOD)

1

Ask what playback method to use

method is direct, remux, audio-only, or transcode. url is already the right path to request next.
2

Play it

  • Direct play: GET the returned url (/file). It’s the raw file, with Range support for seeking.
  • Transcoded: GET /watch/vod/<item_id>/master.mpd (DASH, used by Roku/Android) or /master.m3u8 (HLS, used by web) to start the transcode job and get a manifest. Segment requests that follow are served as ffmpeg produces them.

Live TV

  • Web and most clients get back an HLS master playlist directly.
  • Roku and Android (detected from Device-OS) get a 302 redirect to /watch/live/<channel_id>/master.mpd. These clients are DASH-only and will not play HLS.

Resolving IDs

  • GET /libraries then GET /library/{id} then item IDs for GET /item/{id}.
  • GET /channels for channel IDs used in Live TV playback and GET /programs (EPG).
See the endpoint pages for full request/response schemas.