homeaboutvideotry it nowpricingdocs
Video hosting API

Upload a video. Stream it everywhere.

Fileboy encodes your video at several sizes, makes a poster image and serves adaptive HLS and DASH streaming. One upload, one ID, no ffmpeg servers to run.

From upload to playback in three steps

Video usually means an encoding job, a queue, somewhere to run it and a player to build. Fileboy does the encoding and gives you the player.

1

Upload the original

Send the file from your server, or drop it in the dashboard. You get back one video id.

2

Fileboy does the encoding

It encodes sizes from 240p to 1080p and a separate audio track, picks a poster frame, makes seek-preview thumbnails, and tells you when the video is ready.

3

Play it anywhere

Drop in the player, use an iframe, or point any HLS or DASH player at the manifest URL.

Add it in a few lines

Upload with an HTTP call or the Ruby, Python and PHP libraries. Play it with the Fileboy player, an iframe or your own player.

Not sure how to start? Follow the streaming guide or read the upload docs.

curl https://api.fileboy.io/videos/upload \
  -H "Authorization: public YOUR_PUBLIC_KEY" \
  -F "file=@./clips/launch.mp4;type=video/mp4" \
  -F 'data={"name":"Launch day"}'

# { "id": "4a7b8f2e-...", "name": "Launch day", "rawFileId": "..." }

What you get with every video

Adaptive streaming

One upload becomes HLS and DASH. The player picks a quality for the viewer's connection and switches as it changes.

Automatic poster image

A frame from the video is saved as the poster. Upload your own if you want a better one.

Seek-preview thumbnails

Small frames above the progress bar as viewers scrub, made for every video. The player shows them on its own, and any player can read the WebVTT.

Captions

Attach a WebVTT file per language and the player shows a captions menu. Pick a default language in one attribute.

A player for every setup

One web component that works in plain HTML, React, Vue or anything else, and an embed page for sites where you cannot run code.

Your brand on the player

Set your colours, a logo with a link and the controls you want once, for every video or just one. The watch page and embeds pick it up, readable contrast is kept for you, and there is never a Fileboy logo on the player.

Webhooks

A signed request when a video is uploaded, ready, failed or deleted, so you never have to poll. If your endpoint keeps failing, you get an email.

Description, tags and metadata

Write a description for the watch page and link previews. Add private tags and your own key-value data, find videos by them, and get them back in every webhook.

Manage it from your server

List, update and delete videos with the management API. Each video also keeps a play count and a last played time.

A good fit for

  • Course and lesson videos inside your app
  • Product demos and help videos on your site or docs
  • Short clips users upload, played back to others
  • Marketing video where you want adaptive streaming without a video platform

Not a fit for

  • Live streaming. Fileboy is on-demand video only.
  • DRM. Videos play for anyone with the id unless the app turns on signed URLs.
  • Video editing, burned-in watermarks or a moderation pipeline.
  • Playback above 1080p, such as 4K.

If you need those, compare Mux and Cloudflare Stream.

Priced per app, with video included

Video is part of every plan, not an add-on. The allowance is how many videos the plan is meant for: Free 3, Pro 50, and Max 200. It is a guide for choosing a plan and not a hard cap today. See pricing for the rest.

Add Fileboy to your next project

We built Fileboy to stop rebuilding file handling for every app. Create an app, paste your key and upload a file. The free plan needs no card.