Video APIv1 Home OpenAPI spec

Docs › Streaming (Pro and Scale)

Streaming (Pro and Scale)

On Pro and Scale, finished videos also have adaptive streaming copies (HLS), and the status includes a link any standard player can play. The player picks the quality that suits each viewer's connection.

"streamUrl": "https://…/stream/3f1c…/1790925000/9b2e…/master.m3u8",
"streamExpiresAt": 1790925000
  • The link lasts as long as playbackUrl (streamExpiresAt, Unix seconds) and follows your allowed domains. Fetch the status again for a fresh one when you load a player; don't store it.
  • It works in Safari and iOS natively, and anywhere else with hls.js, video.js, Shaka or ExoPlayer, including on your own website.
  • Streaming copies count toward your plan's storage. On other plans, videos get the download only.
<!-- hls.js where the browser can't play HLS itself -->
<video id="player" controls playsinline></video>
<script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script>
<script>
  const video = document.getElementById("player"), url = STREAM_URL;  // from GET /videos/{id}
  if (video.canPlayType("application/vnd.apple.mpegurl")) video.src = url;
  else { const hls = new Hls(); hls.loadSource(url); hls.attachMedia(video); }
</script>