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>