In development

Broadcast around the clock from a prompt.

AI Streams keeps a channel on air continuously: it commissions short video clips from your own AI video account, joins them into one unbroken programme, and publishes that into an ordinary Stream Repeater channel — which relays it to every destination you already broadcast to. It is in development and you cannot buy it.

This page describes work in progress, not a product you can buy. AI Streams is enabled on no purchasable plan. It is built and runs end to end under test, but it has never generated a clip from a live vendor account in production. There is no date, no waiting list and nothing to pay for.

Everything below describes what is genuinely built. Where something is not built or not proven, this page says so.

Both go to a real person and to nothing else. Neither reserves anything, grants access, or starts a subscription.

Where this actually is

Three facts, in the order they matter to someone deciding whether to care about this yet.

Built

The whole pipeline runs for real

Intake, the acceptable-use gate, the spend limit, attempt counting, generation, normalisation, the queue, the playout feeder, the publisher and the relay all run unchanged against a provider that synthesises clips on our own box with FFmpeg. A clip reaches played; the story chain advances; the chain ceiling starts a fresh chain.

Unproven

One link has never been exercised

No vendor API key has ever been stored on this installation, so no clip has ever been bought from a real provider here. Each vendor is wired from its published documentation, and a shape that turns out to be wrong fails on its first call with a plain provider error recorded against the key — it cannot quietly broadcast something wrong.

In development

No plan carries it

The entitlement that switches AI Streams on is off for every plan we sell, so there is no combination of signing up and paying that gets you it. When that changes, this page changes with it — the status you are reading is generated from the plan data, not typed into a template.

How a prompt becomes a continuous channel

Five steps, each of which exists because the obvious shortcut broke something.

You write the instruction

A prompt, a clip length, an aspect ratio, a model, and how many clips to keep queued ahead of the playhead. Every instruction is reviewed against our acceptable-use rules before anything is generated, and that review fails closed — media can only ever exist for an instruction that passed it.

A director keeps the queue topped up

It commissions only enough clips to reach your buffer target, counting work already in flight, and then stops. That target is the only bound on how much is ever being generated at once — a running order of fifty scenes still commissions at most a buffer’s worth per cycle.

What it takes to stay unbroken. Your buffer has to hold more video than one clip takes to make — buffer target × clip length must exceed your vendor’s turnaround. Below that the queue drains faster than it fills and the channel falls back to holding media until it catches up. Each stream measures its own vendor’s turnaround and tells you the target it would need.

Clips are normalised, then queued in order

Whatever the vendor hands back is converted to one canonical profile so consecutive clips join without a glitch, then queued first-in first-out. Clips that have played are deleted from disk — an always-on channel would otherwise fill a disk with television nobody can watch again. Media you uploaded yourself, and your standby clip, are never deleted.

Playout is one unbroken publish

A feeder writes the queue into a pipe in order and a long-lived FFmpeg publisher reads it, so the RTMP session never ends between clips. If nothing is ready yet, it falls through to your standby media rather than dropping the connection.

The relay treats it like any other encoder

An AI stream publishes into an ordinary channel’s ingest, so your existing destinations, quotas, health checks and watch page handle it exactly as if a person had connected OBS — and it fans out to every destination without re-encoding, the same way the rest of the product does.

The generators it drives

These are the vendors wired into this deployment. One of them, Luma Ray, can extend a clip, which makes a long scene look like one shot instead of a cut every few seconds; the others make each clip as a separate scene.

Kling AI
Separate scenes
Provider API docs ↗
Runway Gen-4
Separate scenes
Provider API docs ↗
Luma Ray
Continues a clip · chains to 2 min
Provider API docs ↗
Google Veo
Separate scenes
Provider API docs ↗
MiniMax Hailuo
Separate scenes
Provider API docs ↗
Pika
Separate scenes
Provider API docs ↗

OpenAI Sora is deliberately absent. Its shape was the only one we had confirmed end to end, and it was removed when the Videos API was announced as shutting down: wiring a vendor that stops answering within the week means supporting customers whose channels went quiet for a reason nothing in our logs would explain. A provider about to disappear is worse than an absent one — the absent one never takes a key or a payment.

You bring the key. That is the feature, not a limitation.

AI Streams is bring-your-own-key by design. We considered one platform key, metered and rebilled, and rejected it.

  • Your contract, your rate limits, your invoice. A workspace saves its own key for the provider it chooses, and that provider bills you directly. There is no markup from us, because we are not in the billing path at all.
  • Continuous means a clip every few seconds, all day. The volume is set by the clock, not by your settings: at eight-second clips, staying unbroken is about 450 generations an hour — roughly 10,800 a day — on your own vendor account. Longer clips are the cheap lever, because they divide the bill and reduce the buffer needed for the same turnaround. We cannot cap what your vendor charges you; only you can, on their side.
  • You set what a clip costs. The per-clip figure comes from you, not from us — model pricing changes weekly and varies by region, tier and credit, so no vendor price is hard-coded anywhere in this feature, and a test fails if one ever is.
  • A spend limit you set stops us commissioning. Once our running estimate reaches your figure we stop requesting new generations and playout falls back to your standby media. The channel stays on air: taking it off over a number we have told you is approximate would be indefensible. Leave the per-clip cost blank and the form says plainly that the limit cannot be enforced, rather than showing one that silently does nothing.
  • The key is held as a credential, not as a setting. It is encrypted at rest; only the last four characters are stored in the clear; it is stripped out of every error before logging or display; and the form field is write-only and empty on load. Changing one needs the permission governing billing-shaped settings, not the one governing a running stream. A key is sent only to its own provider API, never to the storage from which a finished clip is downloaded.
  • One workspace, several vendors. A workspace can hold a key for each provider in the catalogue at once — one key per vendor — and the provider is chosen per stream, so a cheap always-on channel and a showcase channel can use different models side by side. Saving another key for the same vendor rotates it rather than adding one: there is exactly one key per vendor per workspace.
  • You can prove a key works before a live channel does. A one-clip test generation sits behind an explicit confirmation that says it spends your credit and uses the shortest length the vendor will make. Saving a key proves only that it was accepted; it cannot prove the account has credit, the model is enabled, or the finished file can be fetched.

On that spend limit, in the words we are held to: This is an estimate calculated by Stream Repeater, not a bill. Your AI providers charge you directly under your own account with them, and we cannot see, verify or control what they charge. When the estimate reaches your limit we stop requesting new generations for this stream and fall back to your standby media — that is the only effect it has. To put a real cap on what you are charged, set a hard spend limit in each provider account.

Long-form, not a slideshow

A channel that cuts to an unrelated scene every eight seconds is a screensaver. Two mechanisms make it a programme.

Continuity: the story carries across the join

Set a stream to one continuing story and each clip asks the provider to extend the previous one, so movement, characters and lighting carry over instead of cutting. Every vendor caps how long a single chain can run, so at the ceiling the stream ends that chain and starts a fresh one — the story is unbounded because it is built from chains rather than from one.

The chain lives in the database, not in a worker’s memory, so it survives a restart, a node handover and a deploy. A provider that cannot extend falls back to separate scenes silently, rather than taking a running channel off air over a quality setting.

A running order: direction on top of continuity

Give a stream an ordered list of beats — an instruction and a weight for how long it should last relative to its neighbours — and the programme changes on cue while still chaining. At the end of the list it loops, because an unattended channel scheduling its own silence at three in the morning is indistinguishable from an outage.

A beat our gate refuses is skipped and struck through with the reason, never skipped silently: the alternative is your words quietly never going on air. Editing the text clears the mark.

When a vendor has a bad minute

Two rules, both about not punishing you for someone else’s outage.

A generation failure is never a broadcast failure

Every failure path marks the clip failed and returns. It never stops the stream and never signals the publisher — playout simply falls through to your standby media until the next clip is ready. Taking a channel off air because a vendor had a bad minute punishes your audience for the vendor.

Retried three times — and only when retrying is honest

Three attempts, backing off 60 then 300 seconds. A clip is retried only when the failure was transient and the vendor had not already accepted the work: an error while submitting started nothing, but the identical error while waiting on a job is work you are already being charged for, and asking again buys it twice.

Attempts are counted before the call, so a process killed mid-generation burns the attempt rather than looping forever, and a retry goes to the back of the queue so one backing-off clip cannot block every fresher one.

What it does not do

The list a feature page usually leaves out.

  • You cannot buy it today. It is on no purchasable plan, and there is no waiting-list product, trial or add-on to pay for.
  • It is not free generation. You bring and pay for your own vendor account. We never give you clips at no cost, and we never claim to.
  • We cannot cap what your vendor charges you. Our limit stops us asking for more work. The only real cap is a hard spend limit set inside your own provider account.
  • Nothing reacts to your chat or to what is on screen. Both would spend your money on your own key in response to something you did not type, so both are later decisions with a visible cost, not defaults.
  • You cannot author a stream from your phone. The mobile app shows a stream’s queue, running order and spend, and can start and stop it — one reversible bit each. Creating and editing stay on the web, because a trimmed-down phone form would be the dangerous half: the box that commissions the spend without the fields that bound it.

Got a view on this?

It is in development, so what it should do is still an open question. If you have an opinion about that, it is worth more to us now than it will be later.

Send feedback Ask a question

How it works, screen by screen — providers and keys, beats and the schedule, several channels, the Video Library, costs and troubleshooting — is in the AI Streams help articles, and the developer API is in the API reference.

The terms that will govern it are already published — see AI video generation in our Terms, and the Privacy Policy for how provider keys and instructions are handled.