Skip to content
Docs
Get early access

Playback & access

Give each learner personal, expiring access to a lesson, and take it back when needed.

Every lesson in WireVoD is private. Nothing plays until your backend creates a playback session: personal, time-limited access to one asset for one viewer.

Create the session when a learner opens a lesson, after your own checks (enrolment, subscription, payment).

/v1/playback/sessions (scope read)

Request body
{ "asset_id": "6f1c2a9e-…", "ttl_seconds": 3600 }

ttl_seconds is optional: 60 seconds to 24 hours, default 4 hours. The asset must be ready.

Response · 201
{
"session": {
"id": "3d9a51c4-…",
"asset_id": "6f1c2a9e-…",
"expires_at": 1760284800000,
"drm": false
},
"token": "v1.eyJ…",
"urls": {
"manifest": "https://media.wirevod.online/v1/play/v1.eyJ…/package/hls/master.m3u8",
"telemetry": "https://media.wirevod.online/v1/telemetry"
}
}

Return this response to the learner’s browser and pass it to WirePlayer. For protected assets the response also includes urls.entitlement, used automatically by WirePlayer (see Content protection).

/v1/playback/sessions/{id} (scope read) ends access. Within about two minutes the session stops working everywhere, including for protected lessons. Use it when a subscription ends, a learner leaves a course or a link is shared.

  • urls.manifest is a standard HLS stream URL. WirePlayer and any modern HLS player can use it.
  • All URLs are scoped to the session and stop working when it expires or is ended.
  • Responses allow cross-origin requests, so you can play lessons on your own domain.
  • Each asset has three preview images at …/v1/play/<token>/thumbs/thumb_0001.jpg, thumb_0002.jpg and thumb_0003.jpg.
StatuscodeMeaning
403playback_expiredThe session has expired; create a new one
403playback_revokedThe session was ended
403playback_bad_signature, playback_malformed, playback_unknown_keyThe URL was modified or isn’t a valid session
404not_foundNo such file for this lesson

WirePlayer reports how each session plays (start-up time, interruptions, quality changes, errors and completion) to urls.telemetry. Reports carry the session reference and the viewer’s browser and country; nothing from your page is collected.