Encode once, play anywhere
One master becomes the ladder of renditions a real network needs, so a phone on a train and a desk on fibre both get something watchable.
VIDEO
Upload straight to storage, nothing streams through the API. We encode it into the renditions a real network needs, then hand each viewer a licence that can be scoped to a domain, a country or a rental window.
HOW IT WORKS
One call returns the parts. Your client PUTs the bytes straight to storage, so a large file never queues behind an API.
The master becomes a rendition ladder. The console shows progress, and names the reason if anything fails.
Grant one viewer access, optionally bound to your domains, a country list or an expiry, and hand the player the result.
WHAT IT DOES
Uploading is the easy half. The rest is what this is for.
One master becomes the ladder of renditions a real network needs, so a phone on a train and a desk on fibre both get something watchable.
Playback is granted, not published. Scope it to your domains, to countries, to a concurrent-stream limit or to a rental window that expires.
Serve from a hostname you control, so the player, the cookies and the analytics all live under your brand.
Broadcast a channel, or run a room where people can actually speak back, the same library, the same keys.
Sessions, distinct viewers, what was watched most, and an encoding view that names failures instead of hiding them behind a status pill.
Documented endpoints, Node and Python SDKs, and uploads that resume instead of starting the whole file again.
INTEGRATION
Install with npm i @bolrach/stream or pip install bolrach-stream.
// your server, start an upload
const upload = await stream.createUpload({ filename: 'lecture.mp4', bytes: size });
// then PUT each part straight to storage, nothing goes through the API
await stream.completeUpload(upload.id, { parts });
// when a viewer presses play
const licence = await stream.playbackToken(assetId, {
viewer_id: 'user_8123',
allowed_domains: ['app.example.com'],
});
HONEST LIMITS
Where the edges are, before you build on it.
Delivery rides infrastructure we operate and pay for. That keeps it honest on cost, and it means capacity is planned rather than infinite.
It scopes and expires access, which stops link sharing and hot-linking. It does not stop somebody pointing a camera at a screen, and nothing does.
A long master is minutes of compute, not an instant. The console shows the stage rather than a spinner that tells you nothing.
Create a workspace, upload a file, and watch it encode.