Log inSign up
Sign upLogin
Thursday, January 28, 2021

Record Every Video Livestream with Livepeer

By Angie RamirezAngie Ramirez
4 min read
We are proud to announce the release of Livepeer stream recording, a feature much requested and anticipated.

Our lives, from meaningful life events like birthdays, weddings, and baby showers, to work meetings, fitness classes, shopping, and social media streaming, have moved online this year. With change comes an opportunity to innovate - and that’s what we have done collectively as a world society amidst a global pandemic.

At Livepeer, we understand the increasing importance of capturing these meaningful moments, both for individuals and for companies riding this wave of digital innovation. We are therefore proud to announce the release of stream recording, a feature much requested and anticipated.

This recording feature provides all API and dashboard users with a .m3u8 link to an adaptive bitrate streaming (ABR) recording of their completed livestream. Playback is delivered via's CDN by default.

To take advantage of this newly released feature, check out the guide below. The first section is for users who create streams using the Dashboard directly. The second section is for those who use the API.

Please note: If you are using recording and OBS, be sure to change your keyframe interval to 2.

Using the Dashboard to record streams

If you’re using the Dashboard to create streams, enabling recording is as simple as checking the Record ON button in your individual stream page. The URL for your individual stream page should look something like this:

The Record ON button is located immediately below the Ingest and playback URL pairs section. When Record ON is checked, future streaming sessions will be recorded and stored by The session recording playback URL will be available about 5 minutes after the live stream ends and will appear in the session table at the bottom of the stream page.

Using the API to record streams

If you do not have a account or an API key follow step 1 in this guide prior to getting started.

Before learning how to make a simple API request to turn recording on for streaming, we need to understand the API stream object.

There are two types of stream objects.

  • A child stream object is a single live streaming session.
  • A parent stream object shows the configuration and metadata totals of all its child stream sessions.

On a parent stream object.

  • record: true means that new sessions are recorded
  • record: false means that new sessions are not recorded

On a child-session stream object, the record value is read-only.

  • record: true means that the session is actively being recorded or was recorded.
  • record: false means that the session is not being recorded or was not recorded.

Read more about the stream object here.

To create a new recording-enabled stream:

Send an HTTP POST request to In that request, include an authorization header of Bearer <api_key>, a JSON body with a stream name of your choosing, a record field set to true, and details about which video profiles or renditions you’d like to transcode your stream into. See step 3 in this guide for more information on profiles.

Sample post request:

curl -X POST \
-H 'content-type: application/json' \
-H 'authorization: Bearer <api_key>' \
-d '{
  "name": "test_stream_recording_on",
  "record": true
}' \

Sample response of stream with recording turned on:

  <other asset object keys, like profiles>

To enable recording for existing streams:

PATCH /stream/<parent_stream_id>/record to modify a parent stream object. The parent record value is inherited by all future child-session stream objects.

curl -X PATCH<parent_stream_id>/record \
-H 'content-type: application/json' \
-H 'authorization: Bearer <api_key>' \
-d '{"record":true}'

To check if recording is enabled on an existing stream:

The response to GET /stream/<parent_stream_id> will return the record value.

curl -H 'authorization: Bearer <api_key>' \

To request all recorded sessions for a parent stream:

The parentId of a child-session stream object is the same as the id of its parent stream object. A common use case is to request all recorded sessions with the same parentId. For example, a user generated content (UGC) video platform may create a stream object for each UGC live streamer and then want to show an archive of all recorded livestream sessions for each live streamer.

To request all stream sessions with the same parentId with record: true  make the following request:

curl -H 'authorization: Bearer <api_key>' \

Playback a session recording:

The playback URL for a livestream session recording will not be available until approximately 5 minutes after the livestream has ended.

Once the recording is ready, the session stream object's recordingUrl parameter will return the .m3u8 recording playback URL.

The recording playback URL will look something like this:<id-of-stream-session>/index.m3u8. View the live stream with any HLS video player.

For more detailed information on stream recording or to ask any questions, share your thoughts, or make any kind of suggestion, feel free to get in touch at [email protected]. We’d love to hear from you!

Articles you may be interested in

We believe in the power of live streaming in the social media sector to continue shaping our world of tomorrow.
Angie Ramirez
Angie Ramirez
4 min read

Live Streaming on Social Media Platforms

Growing platforms for performers, influencers, gamers, and many others looking to grow their brand on social media, tend to support a large number of live streams at a time, which often translates to unsustainable transcoding costs. They end up reliant on existing cost-prohibitive streaming platforms to fulfill increases in live streaming demand. When it has been shown that 80% of consumers prefer to watch a video than read a blog and 63% of 18-34 year olds watch live streaming content regularly, it is safe to assume that an investment in lower cost live streaming infrastructure can pay off exponentially in the future.

Read more

Ready to get started?

Create a free account instantly and start creating streams. You can also contact us to design a custom package for your business.
Sign up for freeContact us
  • Company
  • Home
  • Contact
  • Team
  • Jobs
  • Livepeer, Inc.
  • 223 Bedford Ave PMB 530
    Brooklyn, NY 11211
  • [email protected]