Frameloft
Early access · since October 2026

Segment delivery for video that has to start now.

You keep the encoder and the player. Frameloft takes the finished HLS renditions, mints a short-lived session per viewer and serves the segments from edge caches — so the first frame arrives before anyone decides to leave.

6segment classes per asset
48characters per session token
300 smaximum segment stream
2EU origin regions

How a view works

  1. Your backend asks for a session One call per viewer, per asset. You get a 48-character token and the base path for the segments it unlocks. Tokens are short-lived and bound to one asset.
  2. The player fetches segments Any HLS player, no SDK. The manifest you hand it points at /static/getFile/video/<class>.ts/<session>, which is the only path shape our edges will serve.
  3. We pull from your origin once A miss goes to your origin; everything after it is served from the edge until the rendition changes. Range requests and seeks never re-pull the whole segment.

What the player sees

# a session, then the segments it unlocks
GET /static/getFile/video/preview.ts/8f2c41d9e7b64a0c93a5f1d8e2b74c6a05fe39b1d7c82a46
     200 OK · video/mp2t · 1.2 MB

# the same token, next class in the ladder
GET /static/getFile/video/part.ts/8f2c41d9e7b64a0c93a5f1d8e2b74c6a05fe39b1d7c82a46
     200 OK · video/mp2t · 2.8 MB

Full path table, status codes and limits are in the documentation.

What you get

Player-agnostic

Plain HLS over HTTPS. hls.js, AVPlayer, ExoPlayer, Safari native — whatever you already ship. No proprietary manifest, no wrapper.

Sessions, not hotlinks

A segment URL is useless once its session expires, so a copied link stops working instead of becoming someone else’s bandwidth bill.

Concurrency you can see

128 open segment streams per session, 4 000 per edge. Over the line you get 503 with a Retry-After, never a hung socket.

Mobile-first routing

Edges in Europe and Russia, picked by DNS. Mobile carriers see ordinary HTTPS to a video host — no odd ports, no UDP.

No cookies

Nothing is set on the viewer, nothing is read back. The session token is the whole state, which is also why there is nothing to consent to.

EU origins

Primary origin in Germany, standby in the Netherlands. Your media stays on those two and the edge caches in front of them.

Questions people actually ask

Why is there no public demo player?

Everything on the platform belongs to a customer, and sessions are bound to one asset and one viewer, so there is nothing we can leave open on a marketing page. Ask for access and you get a sandbox asset with your own tokens.

I requested a segment and got 400 with an empty body.

That is the expected answer for a session that has expired, was issued for a different asset, or was never issued at all — crawlers and copied links hit it constantly. It is not an error on your side unless your own player sees it.

Can I put my own domain in front?

During early access, no. Segments are served from frameloft.online so that one certificate and one edge map cover every customer.

How big can an asset be?

No limit on the asset; a single segment should stay under 16 MB so that a stalled mobile connection does not sit on a stream for the full 300 seconds.


Early access

We are taking on a small number of projects while the edge map settles. Tell us what you are shipping and roughly how much you move per month.