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.
Send the file from your server, or drop it in the dashboard. You get back one video id.
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.
Drop in the player, use an iframe, or point any HLS or DASH player at the manifest URL.
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": "..." }One upload becomes HLS and DASH. The player picks a quality for the viewer's connection and switches as it changes.
A frame from the video is saved as the poster. Upload your own if you want a better one.
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.
Attach a WebVTT file per language and the player shows a captions menu. Pick a default language in one attribute.
One web component that works in plain HTML, React, Vue or anything else, and an embed page for sites where you cannot run code.
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.
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.
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.
List, update and delete videos with the management API. Each video also keeps a play count and a last played time.
If you need those, compare Mux and Cloudflare Stream.
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.
Worked examples with code you can paste.
Upload a video, get adaptive streaming and a poster image, and play it with one tag.
Upload a caption file per language and the player shows a captions menu, with your choice of default.
A responsive iframe for CMSs and docs sites, a script tag for your own pages, and a plain link for email.
List your videos from your server, show posters in a grid, and play each one on click.
Receive a signed HTTP request when a file is uploaded or deleted, or a video finishes processing.