The rehelios blog

Playbooks, comparisons, and engineering notes on shipping video — from the team building the infrastructure.

Latest

More posts

Cost

The cheapest video hosting in 2026, calculated at three catalog sizes

“Cheapest video hosting” has no single answer, but it does have a calculable one. Here's the same arithmetic run at three catalog sizes, the assumptions that drive it stated out loud, and the two specific points where per-minute billing actually beats per-GB.

Read post
Comparisons

Best video hosting for developers in 2026: ranked by what you'll actually hit in week two

Developer-facing video platforms all demo well. The differences show up in week two — when you need resumable uploads, signed playback, webhooks that fire reliably, and a bill that doesn't scale with a unit you can't control. Here's the honest split, by what each one is genuinely best at.

Read post
Comparisons

Best video hosting for online courses in 2026: what 500 GB actually costs on each

Most “best video hosting for online courses” lists rank platforms without ever pricing them against a real course library. This one picks a concrete catalog — 50 hours, 500 GB, 200 students — runs the arithmetic on each billing model, and says plainly which platform wins for which kind of course.

Read post
Comparisons

Best video hosting for your website in 2026: start with why you're leaving YouTube

Nobody searches for website video hosting because they love comparing CDNs. They search because YouTube put a competitor's video after theirs, or the page got slow, or the content needs to be gated. Each of those reasons points at a different platform — here's the mapping.

Read post
Guides

How to add video to a Next.js app

How to wire video upload, adaptive HLS/DASH playback, and signed private playback into a Next.js App Router project without routing bytes through your own server.

Read post
Comparisons

The best video hosting API in 2026 depends on how you're billed

“Best video hosting API” has no single answer — the right one depends on how you're billed, whether you need live, and whether an AI agent has to drive it. Here's an honest map of the main options in 2026, what each is genuinely good at, and how to pick.

Read post
Cost

“Free video hosting API” — what free actually means

Search “free video hosting API” and you'll find free tiers, free encoding, and free open-source — three different things, each with a different catch. The free tier ends when you get traction, free encoding isn't free hosting, and self-hosting trades a bill for engineering time. Here's how to actually keep video cheap.

Read post
Engineering

Generate HLS from an mp4 with ffmpeg

A single ffmpeg -f hls command makes a working manifest but not an adaptive stream — here's the real multi-rendition command, why keyframe alignment matters, and when to stop maintaining the pipeline yourself.

Read post
Engineering

HLS won't play on iOS Safari? a checklist

iPhones are the one place you should not reach for hls.js — Safari on iOS plays HLS natively and blocks the Media Source path hls.js needs. Most 'HLS won't play on iPhone' bugs come down to a handful of causes: using the wrong player, a missing playsinline attribute, the wrong MIME type, or an autoplay that isn't muted. Here's the checklist.

Read post
Engineering

hls.js CORS error: why it happens and how to fix it

The hls.js CORS error almost never means your player is broken — it means the server delivering your .m3u8 and its segments isn't sending the right cross-origin headers. hls.js loads video through fetch/XHR (unlike a native <video> tag), so every file it touches is subject to CORS. Here's the mechanism and the exact fix.

Read post
AI agents

MCP video servers, compared: who lets an agent actually ship video

Search “MCP server for video” and you mostly find tools that edit or generate clips. Far fewer let an AI agent host and deliver a finished video — take a file or a model-output URL and hand back a permanent, streamable embed. Here's the map of who does what, and where an agent hits a wall.

Read post
Engineering

Resumable video uploads with the tus protocol

A walkthrough of how tus turns large video uploads into resumable, chunked transfers that survive dropped connections and skip your API server entirely.

Read post
Engineering

Webhook vs polling for video processing status

Polling a video status endpoint wastes requests and adds latency; a webhook tells you the instant encoding finishes. Here's how to do it right — HMAC verification, fast 2xx acks, idempotent handlers, and a polling fallback.

Read post
Guides

Build a token-protected course video player: a code walkthrough

Most guides on protecting course video stop at 'the link expires' with no mechanism behind it. This is the actual code: import lectures into a per-course collection, check enrollment on the server, mint a short-lived signed playback token, and hand it to the player — plus an honest look at what that protection does and doesn't stop.

Read post
Comparisons

Video hosting API pricing, compared by billing model

Listicles compare vendor pricing pages number by number, but Cloudflare Stream, Mux, Bunny, and rehelios don't even bill on the same axis. Here's how the two dominant billing models — per-minute and per-GB — actually work, and which one wins for which kind of catalog.

Read post
AI agents

Full autonomy vs. human-gated: choosing an agent-native video API

Agent-native video APIs split into two philosophies: human-gated, where an agent has to ask before anything destructive happens, and full autonomy, where it can upload, import, and manage video end to end unattended. Neither is wrong — they're built for different jobs.

Read post
Guides

Add video to your SaaS: a build-vs-buy decision guide

Product demos, onboarding video, user-uploaded clips — every SaaS eventually needs to store and serve video. Here's the decision guide: the five factors that actually matter, a fair comparison across the main options, and the concrete flow for shipping it with rehelios.

Read post
Comparisons

Vimeo alternative for developers: embed video by API

Vimeo is built for the vimeo.com destination and its hosted player — not to disappear as the invisible video backend of your app. Here's what changes when a developer moves from Vimeo's embed/API path to actual video infrastructure.

Read post
Cost

The real cost of self-hosting video: FFmpeg + S3 + CDN vs. buying

Self-hosting video looks free because the tools are free. The real bill shows up in transcode compute, CDN egress at scale, and the weeks spent building signed URLs, retries, and monitoring around FFmpeg. Here's how to model it against a managed per-GB provider before you commit.

Read post
AI agents

How to give an AI agent the ability to upload and host video

Search for how to give an AI agent file-handling abilities and every result is a document-RAG framework. Nothing purpose-built handles video. Here's how to add real upload-and-hosting ability with the rehelios MCP server, CLI, or API — one tool call in, a playable URL out.

Read post
AI agents

Where to host Sora and Veo video before the URL expires

Every AI video model hands you a temporary URL, not a home for your output. OpenAI's Sora download links expire in roughly an hour, Google's Veo output on Vertex AI is auto-deleted after about two days, and fal.ai's retention on fal.media URLs isn't documented at all — so if nothing copies the clip somewhere durable first, it's gone. Here's the mechanism, and the one-call fix for an agent that just generated a video.

Read post
Cost

Cloudflare Stream pricing: per-minute, not per-GB

"Cloudflare Stream cost per GB" is a search people run constantly — and it's a category error. Stream bills per minute. Here's why that distinction exists, how to translate minutes into a rough GB budget, and when it works for or against you.

Read post
Cost

Mux encoding pricing by quality tier: free on basic, metered above it

Mux's encoding meter has a detail most comparisons miss: it's free on the basic quality tier at any volume, and only starts charging once you need plus or premium. Here's what each tier actually gives you, and why the charge compounds for catalogs that only grow.

Read post
Engineering

How signed playback tokens actually work for HLS and DASH

Most video-protection tutorials stop at signing one manifest URL — but HLS and DASH are made of many segment files, and an unsigned segment is a wide-open door. This post covers the two approaches that actually protect a full playback session, and why Safari makes token renewal non-negotiable.

Read post
Guides

Import a video library from S3 without re-uploading

If your original files already live in an S3 (or R2) bucket, you don't need to download and re-upload gigabytes to get adaptive HLS and a CDN. Here's how server-side import-by-URL works, what it costs, and the migration pattern that keeps it reversible.

Read post
Customer story

How LearnBase made course video feel instant across LATAM with rehelios

LearnBase serves AI-built academies to creators across LATAM, Spain, and Brazil. Their course video lived on Bunny Stream, but its origin storage sat in Brazil — so first-play of each module segment hit periodic 1–2s cold-start spikes for Argentine learners. Here's how they migrated to rehelios from their existing S3 origin, with zero re-uploads and no player rewrite.

Read post