Skip to content

Playback

The Playback router provides video streaming and thumbnail access via presigned URLs served through cdn.lynxvizion.com (Cloudflare CDN). All endpoints return redirects to presigned URLs that expire after 1 hour.

No authentication required — endpoints use non-guessable UUIDs (job_id) as implicit authorization.


Get a video thumbnail. Returns a 302 redirect to a presigned B2 URL for the JPG thumbnail.

Auth: None

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID

Response: 302 redirect to presigned URL

Thumbnails are stored at users/<user-id>/thumbnails/<job_id>.jpg.

Terminal window
curl -L https://api.lynxvizion.com/api/playback/thumbnail/a1b2c3d4-...

Can be used directly in HTML:

<img src="https://api.lynxvizion.com/api/playback/thumbnail/a1b2c3d4-..." />

Check if an HLS stream is available for a video. Returns 200 if the manifest exists, 404 otherwise.

Auth: None

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID

Response: 200 (stream exists) or 404 (not ready)

Used by the video player to poll for HLS availability before switching from direct MP4 playback.

Terminal window
curl -I https://api.lynxvizion.com/api/playback/stream/a1b2c3d4-...

Get the HLS manifest (m3u8) with segment URLs rewritten to presigned B2 URLs.

Auth: None

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID

Response: application/vnd.apple.mpegurl

The raw m3u8 file is downloaded from B2, and each .ts segment reference is replaced with a presigned CDN URL so that HLS.js / Video.js can fetch segments through Cloudflare.

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXTINF:6.000,
https://cdn.lynxvizion.com/...seg_00001.ts?X-Amz-Signature=...
#EXTINF:6.000,
https://cdn.lynxvizion.com/...seg_00002.ts?X-Amz-Signature=...
Terminal window
curl https://api.lynxvizion.com/api/playback/stream/a1b2c3d4-...

In JavaScript with HLS.js:

const hls = new Hls();
hls.loadSource(`https://api.lynxvizion.com/api/playback/stream/${jobId}`);
hls.attachMedia(videoElement);

Redirect to a presigned B2 URL for direct MP4 playback. Used as fallback when HLS is not yet available.

Auth: None

Query ParamTypeRequiredDescription
pathstringYesB2 storage path (must start with users/)

Response: 302 redirect to presigned URL

Terminal window
curl -L "https://api.lynxvizion.com/api/playback/direct?path=users/550e8400-.../my-video.mp4"