Skip to content

Cloudflare Stream

Cloudflare Stream is a Storage integration for hosting and streaming your videos as adaptive HLS. Connect your Cloudflare account to upload, import, and play videos directly through Ink Player — with public or signed (private) playback. Setup is two fields: your Account ID and a Stream API token. The signing key needed for private playback is created for you automatically on save.

WARNING

Cloudflare Stream is a paid add-on. The free Cloudflare plan includes no Stream storage, so uploads and imports fail with a "storage quota exceeded" error until you activate a Stream subscription (buy minutes) in the Cloudflare dashboard. Connecting and testing the credentials still works without a subscription — only creating videos requires one.

What this enables

  • Play Cloudflare Stream videos in your players with public or signed playback.
  • Upload videos directly to Cloudflare from the media picker.
  • Import by URL — hand Cloudflare a public video link and it ingests the video for you.
  • Signed playback works with no manual key setup — Ink Player provisions the signing key when you save.

Prerequisites

  • A Cloudflare account.
  • An active Cloudflare Stream subscription to upload or import videos (see the note above).

Step 1 — Create a Stream API token

  1. In the Cloudflare dashboard, open My Profile → API Tokens, or use the direct link: https://dash.cloudflare.com/profile/api-tokens, then click Create Token.
The Cloudflare User API Tokens page with the Create Token button
Open My Profile → API Tokens and click Create Token
  1. Under Custom token, click Get started.
The Create API Token page with the Create Custom Token Get started button
Choose Create Custom Token → Get started
  1. Name the token, set Permissions to Account · Stream · Edit, and set Account Resources to Include → All accounts (or your specific account). Leave IP filtering and TTL blank, then click Continue to summary.
The custom token form with Account · Stream · Edit permission selected
Set the permission to Account · Stream · Edit
  1. Review the summary (All accounts – Stream:Edit) and click Create Token.
The token summary showing All accounts - Stream:Edit and the Create Token button
Confirm the summary and click Create Token
  1. Copy the token now — Cloudflare shows it only once.
The created token screen with the token value and a copy button
Copy the token — it's shown only once

Step 2 — Find your Account ID

Your Account ID is the 32-character value in any dashboard URL — dash.cloudflare.com/<account-id> — or in the right sidebar of the Stream page, labelled Account ID. It is not the Zone ID, the token's ID, or your email.

The Cloudflare quick search jumping to Stream → Videos
Open Stream from the Cloudflare dashboard (search or the sidebar)
The Stream Overview page with the Account ID in the right sidebar
Your Account ID is on the Stream Overview page, under Account details

Step 3 — Connect Cloudflare Stream in Ink Player

  1. Go to Settings → Integrations and enable Cloudflare Stream (under the Storage category), then click Manage.
The Ink Player Integrations grid with Cloudflare Stream and its Manage button
Enable Cloudflare Stream under Storage, then click Manage
  1. Paste your Account ID and API Token, click Send test to verify, then Save changes.
The Cloudflare Stream settings form in Ink Player with Account ID and API Token fields and Send test
Paste your Account ID and API Token, Send test, then Save changes

On save, Ink Player provisions a signing key for you in the background, so signed (private) playback works immediately — there is nothing else to configure. (Hover the next to the API Token field for the subscription note.)

TIP

If you change the Account ID later, Ink Player re-provisions the signing key automatically on the next save.

Step 4 — Add Cloudflare Stream media

  1. Add an Ink Player block (or open Add video in your Media library).
  2. Under Choose a source, click Cloudflare Stream.
  3. In the media picker, use the Public / Signed toggle to choose how the video you insert is delivered, then search or browse your videos, Upload a new file, and select a video and click Select video.
The Ink Player block placeholder with Cloudflare Stream as a source option
Choose Cloudflare Stream as the source
The Cloudflare Stream media picker with the Public/Signed toggle and a video grid
The Stream media picker: pick Public/Signed, browse or upload, and select a video

Import from a URL

Cloudflare can ingest a video straight from a public link. In the picker, click the link icon to reveal the import bar, paste a public, direct video URL, and click Import. Cloudflare processes the video and it appears in your library once it is ready.

Step 5 — The player renders

The selected video is added to your Media library and renders as an Ink Player — ready to place in a post, page, or builder, with all the usual player settings, presets, and overlays. Signed videos are re-signed with a fresh, short-lived token on every render.

A Cloudflare Stream video playing in the Ink Player block editor
The Cloudflare Stream video playing in the Ink Player

Playback policies

Every Cloudflare Stream video is played under one of two policies:

  • Public — anyone with the URL can play the video.
  • Signed — Ink Player generates an expiring, unforgeable RS256 JWT-signed URL using the auto-provisioned signing key.

The Public / Signed toggle in the picker sets the policy for the video you insert; a video uploaded with Signed selected has Require Signed URLs enabled in Cloudflare.

WARNING

Signed playback protects the stream URL — the link is unforgeable and expires — but it does not by itself stop a logged-in viewer from sharing a link while it is still valid. A public video placed on a gated page is gated at the page, but its URL remains reachable to anyone who has it. Choose signed when you need the stream URL itself to be protected.

Settings reference

FieldRequiredNotes
Account IDYesThe 32-character Cloudflare account ID.
API TokenYesA token with Account · Stream · Edit permission; shown only once in Cloudflare.

The signing key used for signed playback is created and stored automatically on save — there are no signing-key fields to fill in.

INFO

For how playback policies fit into protecting your content, see Access control.

Built for WordPress.