Skip to content

Playback

The Playback router provides video streaming and thumbnail access via presigned Backblaze B2 URLs. 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 URL so that HLS.js / Video.js can fetch segments directly from B2.

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXTINF:6.000,
https://s3.eu-central-003.backblazeb2.com/...seg_00001.ts?X-Amz-Signature=...
#EXTINF:6.000,
https://s3.eu-central-003.backblazeb2.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"