
Live to VOD is the workflow that records a live broadcast and turns it into a video on demand file that viewers can replay after the stream ends. On most platforms you switch it on before going live, and on AIOZ Stream one save setting decides it.
TL;DR:
save: true when you create the session. The API default is false.Live to VOD (also written live-to-VOD) means capturing a live stream while it airs and keeping it as a video on demand asset. AWS describes a live-to-VOD asset as "a portion of a live stream that's been extracted and saved for playback later."
Three nearby terms get confused with it:
Many live streams, including those on AIOZ Stream, reach viewers over HLS, so the change is easiest to see in the playlist the server keeps rewriting during a broadcast. RFC 8216 lets a live server append new segments and drop old ones from the front, which gives your viewers a sliding window of the latest few segments. For the path a live feed takes from encoder to viewer, see our guide to how live streaming works.
A replay needs one list that holds every segment from start to finish and never changes again. The spec marks this with EXT-X-PLAYLIST-TYPE:VOD, which says the playlist must not change, and EXT-X-ENDLIST, which says no more segments will be added. Here's a simplified pair of playlists written for this post:
# During the broadcast: a sliding live window
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:1520
#EXTINF:6.0,
segment1520.ts
#EXTINF:6.0,
segment1521.ts
# After the broadcast: the whole show, fixed
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.0,
segment0.ts
# segments 1 to 1520 omitted here
#EXTINF:6.0,
segment1521.ts
#EXT-X-ENDLISTOnce the list is closed, your player treats the stream like any uploaded video and shows a full timeline (see how video segmentation and M3U8 manifests work). AIOZ Stream's HLS import follows the same rule and only accepts finished playlists that end with #EXT-X-ENDLIST.
Cuts tend to snap to segment boundaries: in AWS Elemental MediaPackage, a harvest that starts three seconds into a 6-second segment begins three seconds earlier, at the segment's start.
A replay is only as good as the broadcast behind it, because dropped frames and bitrate dips end up in the recording. The livestream health checks you run while live protect the archive too.
1. The platform archives it. The streaming service records what it ingests and publishes a video when the show ends. You skip the upload, but where saving is opt-in, you must switch it on in time.
2. Your encoder records a local copy. The OBS Studio guide says you can record "at the same time as streaming" and recommends MKV, because a recording that stops abruptly won't corrupt the whole file. File > Remux Recordings converts it to MP4 afterwards, which makes it a handy backup next to the OBS Studio setup for AIOZ Stream.
3. A server cuts clips from the live window. AWS Elemental MediaPackage uses harvest jobs and Google Cloud's Live Stream API makes channel clips, and both save a chosen time range as a VOD asset. That suits highlights, or 24/7 channels where you only want a slice.
The main reason to save a stream is the audience you missed, such as people in other time zones or anyone who joined late. A replay page that stays up can also be indexed, which our video SEO guide covers.
You pay twice for live to VOD on any platform, once to store the recording and again for every replay. AIOZ Stream's payment page lists storage at $0.02 per GB per month and delivery at $0.02 per GB. Take the 1080p rendition in the docs' saved-media example, which has a video bitrate of 5,000,000 bps:
So storage is cheap and popular replays are where your bill grows, as the full rate card in our AIOZ Stream pricing breakdown shows.

In the dashboard, the choice comes when you create a session with "Start new stream". Its optional "Save Stream to Archive When Finished" checkbox keeps the recording "as a standard video after the broadcast ends." While you're live, the Stream Settings panel shows "Saving to Archive" as read-only, and the viewing guide says past livestreams are only replayable if the option was on. Our stream key vs streaming session post explains where this setting lives.
Through the API, you pass save when you create the session. This request, adapted from the Streamings API page with key headers instead of a Bearer token, wasn't run for this post:
curl -X POST 'https://api.aiozstream.network/api/live_streams/KEY_ID/streamings' \
-H 'stream-public-key: YOUR_PUBLIC_KEY' \
-H 'stream-secret-key: YOUR_SECRET_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "Weekly product Q&A",
"save": true,
"qualities": [
{ "resolution": "1080p", "type": "hls", "container_type": "mpegts" }
]
}'After the show, list what was kept for that stream key with this call from the Medias API page:
curl -X POST 'https://api.aiozstream.network/api/live_streams/KEY_ID/media' \
-H 'stream-public-key: YOUR_PUBLIC_KEY' \
-H 'stream-secret-key: YOUR_SECRET_KEY' \
-H 'Content-Type: application/json' \
-d '{ "sort_by": "created_at", "order_by": "desc", "limit": 10 }'Each item in data.videos is a saved session with its title, duration and live player URLs. Inside it sits a video object shaped like an uploaded video, with H.264 and AAC qualities in the example and hls_url, dash_url and mp4_url fields. A GET on /live_streams/{live_media_id}/media returns one item, and a DELETE on /live_streams/{key_id}/streamings/{stream_id} removes it.
What the docs don't cover yet:
save field changes a broadcast that's already running;To set one up, follow the Create a Livestream guide in the AIOZ Stream docs.
Are livestreams saved automatically on AIOZ Stream?
No, because save defaults to false in the API and the dashboard checkbox is optional, so without it past livestreams aren't available for replay.
Can I turn on archiving after the stream has ended?
Not according to the docs, which say replay needs the option enabled during the broadcast. If you also recorded in OBS Studio, upload that file as a normal video instead.
Is live to VOD the same as DVR?
No. DVR lets viewers rewind inside a stream that's still running and usually expires with a retention window, while live to VOD produces a separate video that stays.
What format is a live-to-VOD recording?
Usually HLS, meaning a fixed playlist that ends with EXT-X-ENDLIST, and on AIOZ Stream the saved video also lists DASH and MP4 asset fields.
Where do I find my saved livestreams through the API?
Send a POST to /api/live_streams/{key_id}/media, which lists saved media for that stream key, 25 per page by default and up to 100.

How does live streaming work? Video is captured, encoded, sent over RTMP, transcoded, cut into HLS segments and served to players. See each stage end to end.

How web video players work: the HTML5 video element plays media, MSE lets JavaScript feed it HLS and DASH segments, and EME unlocks DRM-protected streams.

SRT vs VTT explained: how the two subtitle formats differ in timestamps, headers and styling, which one browsers, HLS and YouTube expect, and how to convert.

Live to VOD records a livestream and turns it into an on-demand video viewers can replay. Here's how the conversion works and how AIOZ Stream saves a broadcast.

Video encoding compresses raw video with a codec, then a container packages it for playback. See how codecs, containers, bitrate and rate control fit together.

Video streaming protocols move video from encoder to viewer. See how RTMP, SRT, HLS, DASH and WebRTC differ in latency, transport and where each one fits.