Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Signed URLs and Infrastructure Improvements on Stream Live WebRTC Beta
description: >
Dynamically optimize, clip, and resize video from any origin, no storage
migration needed.
date: 2025-04-11T12:00:00Z
---

Cloudflare [Stream](/stream/) has completed an infrastructure upgrade for our [Live WebRTC beta](/stream/webrtc-beta/) support which brings increased scalability and improved playback performance to all customers. WebRTC allows broadcasting directly from a browser (or supported WHIP client) with ultra-low latency to tens of thousands of concurrent viewers across the globe.

Additionally, as part of this upgrade, the WebRTC beta now supports Signed URLs to protect playback, just like our standard live stream options (HLS/DASH).

For more information, learn about the [Stream Live WebRTC beta](/stream/webrtc-beta/).
2 changes: 1 addition & 1 deletion src/content/docs/stream/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Minutes delivered for web playback (Stream Player, HLS, and DASH) are rounded to

**Two people each watch thirty minutes of a video or live broadcast. How much would it cost?**

This will result in 60 minutes of Minutes Delivered usage (or $0.06). Stream bills on minutes of video delivered, not per viewer.
This will result in 60 minutes of Minutes Delivered usage (or $0.06). Stream bills on total minutes of video delivered across all users.

**I have a really large file. Does that cost more?**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ Response:

You can program your app to generate token in two ways:

- **Using the /token endpoint to generate signed tokens:** The simplest way to create a signed url token is by calling the /token endpoint. This is recommended for testing purposes or if you are generating less than 10,000 tokens per day.
- **Low-volume or testing: Use the `/token` endpoint to generate a short-lived signed token.** This is recommended for testing purposes or if you are generating less than 1,000 tokens per day. It requires making an API call to Cloudflare for each token, the default result is valid for 1 hour.

- **Using an open-source library:** If you have tens of thousands of daily users and need to generate a high-volume of tokens without calling the /token endpoint _each time_, you can create tokens yourself. This way, you do not need to call a Stream endpoint each time you need to generate a token.
- **Recommended: Use a signing key to create tokens.** If you have thousands of daily users or need to generate a high volume of tokens, you can create tokens yourself using a signing key. This way, you do not need to call a Stream API each time you need to generate a token.

## Option 1: Using the /token endpoint

You can call the `/token` endpoint for any video that is marked private to get a signed URL token which expires in one hour:
You can call the `/token` endpoint for any video that is marked private to get a signed URL token which expires in one hour. This method does not support [Live WebRTC](/stream/webrtc-beta/).

```bash
curl --request POST \
Expand Down Expand Up @@ -168,9 +168,9 @@ export default {
};
```

## Option 2: Generating signed tokens without calling the `/token` endpoint
## Option 2: Using a signing key to create signed tokens

If you are generating a high-volume of tokens, it is best to generate new tokens without needing to call the Stream API each time.
If you are generating a high-volume of tokens, using [Live WebRTC](/stream/webrtc-beta/), or need to customize the access rules, generate new tokens using a signing key so you do not need to call the Stream API each time.

### Step 1: Call the `/stream/key` endpoint _once_ to obtain a key

Expand Down
Loading