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.
How a view works
- 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.
- 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. - 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.