# Cloudflare Stream

Cloudflare Stream is a live streaming and on-demand video platform, which can ingest, encode, record, and play videos from one unified product.

For further information, please visit <https://www.cloudflare.com/developer-platform/products/cloudflare-stream/>

Before getting started, navigate to **Appearance > Install Plugins** page and activate **WP Cloudflare Stream** plugin.

1. [Configure API Key](#api)
2. [Secure your stream](#secure-stream)
3. [Configure Upload and Webhook](#webhooks)
4. [Configure Live Stream](#configure-live)
5. [Simulcast](#simulcast)
6. [Receive Live WebHooks](#capabilities)
7. [Capabilities](#capabilities)
8. [Video Help Guides](#videos)

#### Configure API Key <a href="#api" id="api"></a>

***

Navigate to **Settings > WP Cloudflare Stream > API Credentials** tab, enter your **Cloudflare Account ID,** **Cloudflare Account API Token** keys and **Cloudflare Customer Subdomain**.

<figure><img src="/files/4HBwsOoUClF2ONi8K9qx" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.youtube.com/watch?v=IulzZXVogHs>" %}

{% embed url="<https://www.youtube.com/watch?v=fFpFENjlY5s>" %}

#### Secure your stream <a href="#secure-stream" id="secure-stream"></a>

***

Since version 1.1, securing streams using signed URLs is supported.

To enable the feature, navigate to **Settings > WP Cloudflare Stream > API Credentials** tab and enable the "**Secure videos with signed URLs**" option.

If you've added videos before enabling this feature, you will need to navigate to **Settings > WP Cloudflare Stream > Misc** tab and click the "**Bulk Update**" button to apply the new settings to all previously uploaded videos.

#### Configure Upload and Webhook <a href="#webhooks" id="webhooks"></a>

***

Navigate to **Upload** tab, click **Install Webhook** button

<figure><img src="/files/PZFa8kwQYPhgG8wozE8J" alt=""><figcaption></figcaption></figure>

***

#### Configure Live Stream <a href="#configure-live" id="configure-live"></a>

***

Navigate to Live Stream tab, from there, you can enable Live Stream, set Custom Ingest Domain and other options as desired

<figure><img src="/files/kFML43CEw6BCzHTlDUKW" alt=""><figcaption></figcaption></figure>

***

\
**Simulcast**

***

Since version 1.1, you have the capability to broadcast your live stream to third-party platforms such as Twitch, YouTube, Facebook, Twitter, and others. Simulcast to up to 50 concurrent destinations from each live input is supported.

<figure><img src="/files/9rAqy7GfUVEBCyYs4HQL" alt=""><figcaption><p>Frontend</p></figcaption></figure>

<figure><img src="/files/sKwG4lyLNpa5GasckbI1" alt=""><figcaption><p>Backend</p></figcaption></figure>

#### **Receive Live WebHooks** <a href="#receive-webhooks" id="receive-webhooks"></a>

***

Refer to "Subscribe to Stream Live Webhooks" for further instruction <https://developers.cloudflare.com/stream/stream-live/webhooks/>

***

#### Capabilities <a href="#capabilities" id="capabilities"></a>

Members must have the appropriate capabilities to create live streams.

To assign permissions:

1. Navigate to your Frontend **Dashboard > Settings > Capabilities.**
2. Select "**Cloudflare Stream**".
3. Choose a specific user role to grant permissions to, or "All" to retrieve all roles.
4. Check the necessary capability checkboxes.

<figure><img src="/files/Yz4Uhjb6gLQidUzGr4Be" alt=""><figcaption></figcaption></figure>

* **cloudflare\_create\_live** – Allows members to create only one live stream.
* **cloudflare\_create\_lives** – Allows members to create multiple live streams.

{% hint style="danger" %}
Other capabilities are intended for moderators (admins) and should be granted with caution.
{% endhint %}

{% hint style="success" %}
For additional capabilities, please refer to [Content Capabilities](/streamtube/content-capabilities.md)
{% endhint %}

#### Video Help Guides <a href="#videos" id="videos"></a>

{% embed url="<https://www.youtube.com/watch?v=JO_vzQmOw88>" %}

{% embed url="<https://www.youtube.com/watch?v=AKN8N5M0E2w>" %}

{% embed url="<https://www.youtube.com/watch?v=XYnshaBJ27M>" %}

{% embed url="<https://www.youtube.com/watch?v=32cF9u8GAMQ>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://phpface.gitbook.io/streamtube/cloudflare-stream.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
