<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>rehelios blog</title><description>Playbooks, comparisons, and engineering notes on shipping video — from the team building rehelios.</description><link>https://rehelios.com/</link><language>en-us</language><item><title>How to add video to a Next.js app</title><link>https://rehelios.com/blog/add-video-to-nextjs/</link><guid isPermaLink="true">https://rehelios.com/blog/add-video-to-nextjs/</guid><description>A practical guide to nextjs video upload and adaptive playback in the App Router — Route Handlers, hls.js detection, and signed playback tokens.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Guides</category><category>nextjs video upload</category><category>add video to nextjs</category><category>next.js app router video</category><category>hls.js react</category><category>adaptive video streaming</category></item><item><title>The best video hosting API in 2026 depends on how you&apos;re billed</title><link>https://rehelios.com/blog/best-video-hosting-api-2026/</link><guid isPermaLink="true">https://rehelios.com/blog/best-video-hosting-api-2026/</guid><description>An honest guide to the best video hosting APIs in 2026 — Mux, Cloudflare, Bunny, api.video, Cloudinary, Vimeo, rehelios — by billing model and fit.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Comparisons</category><category>best video hosting API</category><category>best video API for developers</category><category>video hosting API comparison</category><category>top video APIs 2026</category><category>cheapest video hosting API</category></item><item><title>“Free video hosting API” — what free actually means</title><link>https://rehelios.com/blog/free-video-hosting-api/</link><guid isPermaLink="true">https://rehelios.com/blog/free-video-hosting-api/</guid><description>“Free video hosting API” means one of three things: a capped free tier, free encoding, or self-hosting. Each has a catch. Here&apos;s the honest breakdown.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Cost</category><category>free video hosting API</category><category>free video API for developers</category><category>video streaming API free</category><category>free video encoding</category><category>cheap video hosting API</category></item><item><title>Generate HLS from an mp4 with ffmpeg</title><link>https://rehelios.com/blog/generate-hls-from-mp4-ffmpeg/</link><guid isPermaLink="true">https://rehelios.com/blog/generate-hls-from-mp4-ffmpeg/</guid><description>The exact ffmpeg command for an adaptive HLS ladder from an mp4 — bitrate ladder, keyframe alignment, and the gotchas that break ABR switching.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Engineering</category><category>generate hls from mp4 ffmpeg</category><category>ffmpeg hls adaptive bitrate</category><category>ffmpeg master playlist</category><category>hls keyframe alignment ffmpeg</category><category>ffmpeg var_stream_map</category></item><item><title>HLS won&apos;t play on iOS Safari? a checklist</title><link>https://rehelios.com/blog/hls-ios-safari-not-working/</link><guid isPermaLink="true">https://rehelios.com/blog/hls-ios-safari-not-working/</guid><description>iOS Safari plays HLS natively but breaks on hls.js, missing playsinline, wrong MIME type, or unmuted autoplay. A checklist of the usual causes and fixes.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Engineering</category><category>HLS not working iOS Safari</category><category>HLS not playing iPhone</category><category>iOS Safari video playsinline</category><category>hls.js iOS Safari</category><category>m3u8 not playing Safari</category></item><item><title>hls.js CORS error: why it happens and how to fix it</title><link>https://rehelios.com/blog/hls-js-cors-error/</link><guid isPermaLink="true">https://rehelios.com/blog/hls-js-cors-error/</guid><description>hls.js fetches the manifest and every segment over fetch/XHR, so both need CORS headers. Here&apos;s why the error happens and the exact headers that fix it.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Engineering</category><category>hls.js CORS error</category><category>hls.js Access-Control-Allow-Origin</category><category>hls.js manifest load error</category><category>hls.js segment CORS</category><category>fix hls.js cross origin</category></item><item><title>MCP video servers, compared: who lets an agent actually ship video</title><link>https://rehelios.com/blog/mcp-video-servers-compared/</link><guid isPermaLink="true">https://rehelios.com/blog/mcp-video-servers-compared/</guid><description>A map of MCP servers for video — Mux, Bunny, Cloudflare, VideoDB and rehelios — by what an AI agent can actually do: generate, edit, or host and deliver.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>AI agents</category><category>MCP server for video</category><category>video MCP server</category><category>Mux MCP alternative</category><category>AI agent video hosting</category><category>video infrastructure for AI agents</category></item><item><title>Resumable video uploads with the tus protocol</title><link>https://rehelios.com/blog/resumable-tus-upload/</link><guid isPermaLink="true">https://rehelios.com/blog/resumable-tus-upload/</guid><description>How the tus protocol makes large video uploads resume instead of restart after a dropped connection, with a client example and direct-to-storage flow.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Engineering</category><category>resumable upload tus protocol</category><category>tus-js-client</category><category>chunked video upload</category><category>direct-to-storage upload</category><category>HLS video upload</category></item><item><title>Webhook vs polling for video processing status</title><link>https://rehelios.com/blog/webhook-vs-polling-video-status/</link><guid isPermaLink="true">https://rehelios.com/blog/webhook-vs-polling-video-status/</guid><description>Why pushing a webhook on video.ready beats polling a status endpoint — cost, latency, and how to verify, ack, and stay idempotent.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Engineering</category><category>webhook vs polling video</category><category>video processing webhooks</category><category>video.ready webhook</category><category>HMAC webhook verification</category><category>idempotent webhook handlers</category></item><item><title>Build a token-protected course video player: a code walkthrough</title><link>https://rehelios.com/blog/build-a-token-protected-course-video-player/</link><guid isPermaLink="true">https://rehelios.com/blog/build-a-token-protected-course-video-player/</guid><description>Import lectures per course, mint short-lived signed playback tokens for enrolled students, and see exactly what that protection does and doesn&apos;t stop.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate><category>Guides</category><category>protect course videos from download</category><category>token protected video player</category><category>video for online course</category><category>secure course video</category><category>LMS video hosting</category></item><item><title>Video hosting API pricing, compared by billing model</title><link>https://rehelios.com/blog/video-hosting-api-pricing-compared-by-model/</link><guid isPermaLink="true">https://rehelios.com/blog/video-hosting-api-pricing-compared-by-model/</guid><description>Video hosting APIs bill on different axes — per-minute vs per-GB. Compare the models, not the cents, to find the cheaper fit for your catalog.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate><category>Comparisons</category><category>video hosting API comparison</category><category>cheapest video hosting API</category><category>Mux vs Cloudflare Stream vs Bunny</category><category>video streaming cost comparison</category><category>video API pricing</category></item><item><title>Full autonomy vs. human-gated: choosing an agent-native video API</title><link>https://rehelios.com/blog/agent-autonomy-vs-human-gated-video-mcp/</link><guid isPermaLink="true">https://rehelios.com/blog/agent-autonomy-vs-human-gated-video-mcp/</guid><description>Mux&apos;s MCP server human-gates destructive ops on purpose. rehelios&apos;s MCP runs full-autonomy per-GB. Here&apos;s when each is the right call.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>AI agents</category><category>MCP server for video hosting</category><category>AI agent video pipeline</category><category>video API for AI agents</category><category>autonomous video agent</category><category>Mux MCP</category></item><item><title>Add video to your SaaS: a build-vs-buy decision guide</title><link>https://rehelios.com/blog/add-video-to-your-saas-a-decision-guide/</link><guid isPermaLink="true">https://rehelios.com/blog/add-video-to-your-saas-a-decision-guide/</guid><description>How to add video to a SaaS product: billing model, encoding, signed playback, and webhooks vs polling, compared across self-host, Stream, Mux, Bunny, rehelios.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><category>Guides</category><category>how to add video to my SaaS</category><category>video hosting API for SaaS</category><category>add video to web app</category><category>video for SaaS product</category><category>store user uploaded video</category></item><item><title>Vimeo alternative for developers: embed video by API</title><link>https://rehelios.com/blog/vimeo-alternative-for-developers/</link><guid isPermaLink="true">https://rehelios.com/blog/vimeo-alternative-for-developers/</guid><description>Most &apos;leaving Vimeo&apos; guides target course creators. This one is for developers embedding Vimeo by API who want a real video-infra primitive instead.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate><category>Comparisons</category><category>Vimeo alternative</category><category>Vimeo alternative for developers</category><category>Vimeo API alternative</category><category>embed video without Vimeo</category><category>Vimeo for developers</category></item><item><title>The real cost of self-hosting video: FFmpeg + S3 + CDN vs. buying</title><link>https://rehelios.com/blog/real-cost-of-self-hosting-video-vs-buying/</link><guid isPermaLink="true">https://rehelios.com/blog/real-cost-of-self-hosting-video-vs-buying/</guid><description>What an FFmpeg + S3 + CDN video pipeline actually costs: transcode compute, storage, dominant CDN egress, and the engineering hours nobody puts on the invoice.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>Cost</category><category>self-host video streaming cost</category><category>video egress cost</category><category>ffmpeg HLS at scale</category><category>build vs buy video</category><category>video transcoding pipeline cost</category><category>self hosted video streaming</category></item><item><title>How to give an AI agent the ability to upload and host video</title><link>https://rehelios.com/blog/give-an-ai-agent-video-upload-and-hosting/</link><guid isPermaLink="true">https://rehelios.com/blog/give-an-ai-agent-video-upload-and-hosting/</guid><description>Wire the rehelios MCP server into an agent and one tool call turns a file or URL into a transcoded, CDN-hosted playbackUrl — no bolted-on storage.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><category>AI agents</category><category>MCP server video</category><category>video API for AI agents</category><category>let AI agent upload video</category><category>agent video hosting</category><category>MCP video</category></item><item><title>Where to host Sora and Veo video before the URL expires</title><link>https://rehelios.com/blog/where-does-your-sora-veo-output-live/</link><guid isPermaLink="true">https://rehelios.com/blog/where-does-your-sora-veo-output-live/</guid><description>Sora links expire in about an hour, Veo output is deleted after two days — here&apos;s how to host AI-generated video so the URL doesn&apos;t die.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>AI agents</category><category>host AI generated video</category><category>Sora output hosting</category><category>Veo video hosting</category><category>where does Sora output go</category><category>AI video storage</category></item><item><title>Cloudflare Stream pricing: per-minute, not per-GB</title><link>https://rehelios.com/blog/cloudflare-stream-doesnt-bill-per-gb/</link><guid isPermaLink="true">https://rehelios.com/blog/cloudflare-stream-doesnt-bill-per-gb/</guid><description>Cloudflare Stream bills per minute stored and delivered, not per GB. Here&apos;s why there&apos;s no clean per-GB number, and how to translate one into the other.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><category>Cost</category><category>Cloudflare Stream cost per GB</category><category>Cloudflare Stream pricing</category><category>Cloudflare Stream per minute</category><category>video hosting per GB</category><category>Cloudflare Stream vs Bunny</category></item><item><title>Mux encoding pricing: why every minute costs extra</title><link>https://rehelios.com/blog/why-mux-charges-to-encode-every-minute/</link><guid isPermaLink="true">https://rehelios.com/blog/why-mux-charges-to-encode-every-minute/</guid><description>How Mux&apos;s per-minute encoding fee compounds as your catalog grows, and why rehelios encodes for free and bills only per GB instead.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>Cost</category><category>Mux pricing explained</category><category>Mux encoding cost</category><category>Mux alternative</category><category>video encoding cost</category><category>free video encoding</category></item><item><title>How signed playback tokens actually work for HLS and DASH</title><link>https://rehelios.com/blog/how-signed-playback-tokens-work-hls-dash/</link><guid isPermaLink="true">https://rehelios.com/blog/how-signed-playback-tokens-work-hls-dash/</guid><description>Signing the manifest URL alone doesn&apos;t protect HLS or DASH — the segments underneath stay open. Here&apos;s how to actually secure a stream.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>Engineering</category><category>signed url video protection</category><category>HLS signed url</category><category>protect video from download</category><category>signed playback token</category><category>secure HLS streaming</category></item><item><title>Import a video library from S3 without re-uploading</title><link>https://rehelios.com/blog/import-video-library-from-s3-without-re-uploading/</link><guid isPermaLink="true">https://rehelios.com/blog/import-video-library-from-s3-without-re-uploading/</guid><description>Move a video catalog already sitting in S3 into rehelios with one API call — no re-upload, no re-encode, fully reversible.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>Guides</category><category>stream video from S3 bucket HLS</category><category>import S3 video without re-upload</category><category>S3 to HLS</category><category>video migration without re-upload</category><category>serve HLS from an S3 bucket</category></item><item><title>How LearnBase made course video feel instant across LATAM with rehelios</title><link>https://rehelios.com/blog/learnbase-cut-cold-start-video-latency/</link><guid isPermaLink="true">https://rehelios.com/blog/learnbase-cut-cold-start-video-latency/</guid><description>How LearnBase moved its course catalog to rehelios — killing 1–2s cold-start spikes for LATAM learners with zero re-uploads or player changes.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><category>Customer story</category><category>HLS cold start latency</category><category>video CDN origin latency</category><category>Bunny Stream alternative</category><category>video migration without re-upload</category><category>LATAM video delivery</category></item></channel></rss>