Skip to content

Media & Playback API

Get Playback Manifest

GET /v1/media/{content_id}/play

Returns the HLS manifest URL and playback metadata:

{
  "content_id": "c_7a3b9f1d",
  "title": "Module 3: Compliance",
  "duration_seconds": 187,
  "manifest_url": "https://stream.cyfr.technology/v1/manifest/c_7a3b9f1d/master.m3u8",
  "encrypted": true,
  "variants": [
    {"resolution": "1920x1080", "bitrate_kbps": 5000, "codec": "h264"},
    {"resolution": "1280x720", "bitrate_kbps": 2800, "codec": "h264"}
  ],
  "subtitles": [
    {"language": "en", "label": "English", "url": "..."},
    {"language": "es", "label": "Spanish", "url": "..."}
  ],
  "thumbnail_url": "https://cdn.cyfr.technology/thumbs/c_7a3b9f1d/poster.jpg"
}

HLS Variant Selection

Specify a preferred variant:

GET /v1/media/{content_id}/play?quality=720p

Options: auto, 1080p, 720p, 480p, 360p.

Session Tracking

Report playback progress:

POST /v1/playback/progress
{
  "content_id": "c_7a3b9f1d",
  "position_ms": 45200,
  "duration_ms": 187000
}

Telemetry

Report playback events:

POST /v1/telemetry
{
  "content_id": "c_7a3b9f1d",
  "event": "playback_started",
  "device_type": "android_tv",
  "device_id": "abc123",
  "timestamp": "2026-07-04T15:30:00Z"
}