Skip to content

RESOURCES / BLOG

Record and Deliver Your Livestreams With Cloudinary Video and OBS

Live streaming continues to grow on platforms like YouTube and Twitch, because of the opportunity for content creators to build a community and engage with their viewers in real time. The downside of live streaming is that you lose that content once it ends, unless you record it.

With Cloudinary and the Live Streaming API, you have full control over your stream and video content. You can simulcast your stream directly to YouTube, X, and any other supported platforms, as well as record your content for storage in your Cloudinary Media Library. This lets you build a library of on-demand recordings of your live streams, ensuring your audience doesn’t miss any of your content. Before getting started, I recommend reading Simple Simulcast Live Streaming with Cloudinary and OBS for an introduction to the Cloudinary Live Streaming API and its uses. In this post, we’ll walk through how to record your live streams and store them in your Cloudinary Media Library for later playback.

We’ll use OBS (Open Broadcaster Software) to stream video from our computer to Cloudinary. OBS is a free, open-source tool for recording video and live streaming, available for Windows, macOS, and Linux. Once OBS is installed, we can begin configuring our Cloudinary livestream.

To create a live stream in Cloudinary, you’ll need to send a request to the Live Streaming API. Before doing that, ensure you’ve set up your API key for your Cloudinary account. Follow these instructions to generate your API credentials and create a live stream. After making a successful POST request to the /live_streams endpoint, you should receive a response like this:

{
  "request_id": "2c41da07b90183b48c4f93b5a83ded20",
  "data": {
    "id": "[REDACTED]",
    "name": "My first stream",
    "input": {
      "type": "rtmp",
      "uri": "rtmp://live.cloudinary.com/streams",
      "stream_key": "[REDACTED]"
    },
    "status": "idle",
    "outputs": [
      {
        "id": "[REDACTED]",
        "name": "default hls",
        "type": "hls",
        "uri": "https://res.cloudinary.com/{cloudName}/video/live/live_stream_{stream_id}_hls.m3u8",
        "created_at": 1730130837173,
        "updated_at": 1730130837173
      }
    ]
  }
}
Code language: JSON / JSON with Comments (json)

Copy the following values from the response:

  • data.input.uri
  • data.input.stream_key
  • data.outputs.uri The input fields will be used in OBS to push your livestream, and the output.uri can be used to deliver your stream to your audience using the Cloudinary Video Player.

To start the stream, we need to plug the stream info into OBS.

  • Go to OBS → Preferences → Stream.
  • Set Service to Custom…
  • Enter the input.uri in the Server field.
  • Enter the input.stream_key in the Stream Key field.

Click OK to save the settings. At the bottom right of OBS, under Controls, you’ll find the Start Streaming button:

Click Start Streaming to begin sending your livestream to Cloudinary.

After clicking Start Streaming, the button should change to Stop Streaming, and you’ll see stream status details in the bottom bar of OBS:

To test your stream, paste the output.uri into a compatible HLS player like Livepush’s HLS Player.

You can start recording your livestream at any time by clicking the Start Recording button next to the stream button. OBS will save the recording locally once you stop it. To configure the file location and format, go to OBS → Preferences → Output.

After recording, upload your video file to Cloudinary’s Media Library:

  1. Open the Media Library
  2. Click the Upload button or drag and drop your file.
  3. Choose a folder, tags, or add custom metadata. This quick upload tutorial video shows the process step by step. Once uploaded, your video becomes part of a powerful digital asset management system. You can organize your content using structured folders and advanced search, apply AI-based tagging for automatic categorization, and use version control to track changes. Cloudinary also enables seamless team collaboration, secure access control, and effortless transformation or optimization of your videos for any device or channel. Whether you’re preparing content for web, mobile, or social platforms, your stream recordings are immediately ready for delivery at scale.

The Cloudinary Video Player makes embedding your recorded livestreams a breeze. Here’s an example:

<!-- Include Cloudinary Video Player -->
<link href="https://unpkg.com/cloudinary-video-player@1.10.9/dist/cld-video-player.min.css" rel="stylesheet">
<script src="https://unpkg.com/cloudinary-video-player@1.10.9/dist/cld-video-player.min.js"></script>

<!-- Video element -->
<video
  id="recorded-stream"
  controls
  class="cld-video-player cld-fluid"
  data-cld-public-id="your_video_public_id"
  data-cld-cloud-name="your_cloud_name">
</video>

<script>
  const player = cloudinary.videoPlayer('recorded-stream');
  player.play();
</script>
Code language: HTML, XML (xml)

Replace your_video_public_id and your_cloud_name with your values. The player supports adaptive streaming, responsive design, autoplay, custom controls, and more. Learn more about customization in the Cloudinary Video Player API.

Whether you’re building a content hub, sharing replays, or just archiving your streams, Cloudinary helps you manage the video production lifecycle from live capture to on-demand playback. With just a few tools (OBS, the Live Streaming API, and the Media Library) you can create a powerful, scalable video workflow without needing to manage any infrastructure yourself. If you’re ready to take your live streaming setup to the next level, Cloudinary Video gives you all the tools to make it happen. Contact us today to learn more about how Cloudinary can help simplify your content development workflows.

Start Using Cloudinary

Sign up for our free plan and start creating stunning visual experiences in minutes.

Sign Up for Free