uploads survive anything
pause, drop the connection, even reload the page mid-upload — it continues. byte-exact server verification.
video hosting & processing as a service
resumable uploads straight from end-user devices, transcoding on a worker fleet you can extend, playback over hls — without running any of it yourself.
sandbox: no signup · watermarked · purged after 24 h
the demo logs every api call it makes — each row expands to a copy-pasteable curl
initiate returns an upload url and a single-video token — the api key never ships inside a client. tus resumable: pause, lose the connection, reload the page; it continues from the last confirmed byte.
a worker fleet transcodes to h.264 + av1 · 720p / 1080p ladders. workers are plain http clients — self-hosting, a gpu box at home joins the fleet with three environment variables.
adaptive hls from unguessable public urls, mp4 fallback, poster + og thumbnails, dimensions and duration metadata. the rendition ladder is shown, never hidden.
the demo is executable documentation — each screen teaches the api it sits on.
pause, drop the connection, even reload the page mid-upload — it continues. byte-exact server verification.
workers are plain http clients — self-host the whole thing and add capacity from a datacenter or the gpu box under your desk.
h.264 + av1 · 720p / 1080p ladders, posters, og thumbnails, metadata — optional transcripts and moderation frames.
signed webhooks with a retry ladder from 1 m → 6 h, dead-letter and replay. or just poll status.
quotas and rate limits are first-class. every rejection names the limit it enforced.
mint a throwaway key and upload in under a minute. 3 videos a day, watermarked, purged after 24 h.
the numbers above are imported from the constants the api enforces — see limits & quotas and the state machine.
initiate with one curl; play back with stock hls.js and a bounded ~15 s look-ahead — bandwidth-conscious by example. every error in the catalog explains what happened and what it does not mean.
curl -X POST https://energixer.net/v1/videos \
-H "authorization: bearer ek_live_…" \
-H "content-type: application/json" \
-d '{"content_type":"video/mp4","file_size":88080384}'
# 201 → { video_id, tus_upload_url, upload_token }
const hls = new Hls({ maxBufferLength: 15 }); // ~15 s look-ahead
hls.loadSource(video.outputs.hls_url);
hls.attachMedia(document.querySelector("video"));
// no hls.js? video.outputs.web_mp4_url just works
the sandbox mints a throwaway key — no signup, no card, nothing to clean up.
3 videos/day · watermarked · purged after 24 h
already have a key? sign in to the console to manage your domains.