Core concepts
How accounts, libraries, videos, private keys and one-time playback passwords fit together.
A few ideas run through every part of OctaVideo. Read this page once and the rest of the docs will make sense.
Account
Your organisation has one account: one plan, one bill and one pay-as-you-go balance. Your team works in it together: publishers upload and edit videos, developers connect your site, and the owner manages billing.
The plan's allowances (storage, bandwidth, encoding, transcribe and DRM licences) are shared by all libraries in the account. The User board shows how much of each you have used this billing period.
Libraries
A library is a container for videos that share the same settings:
- Storage region: where the videos are stored, chosen when you create the library. Regions come from OctaVideo, for example Cairo, Riyadh, Casablanca or Frankfurt. The region can't be changed later.
- Encoding: the codec and resolutions every upload is encoded into.
- Player: speeds, controls, look and custom CSS.
- Security: encryption, allowed domains, country blocking, OTP rules and watermarks.
Use one library per product or audience, for example one for paid courses and one for free previews. See Libraries.
Videos
Every upload becomes a video with its own ID. OctaVideo encodes it into the library's resolutions, encrypts it and captures thumbnails. While this runs the video moves through these statuses:
| Status | Meaning |
|---|---|
| Queued | Waiting for its turn to be encoded. |
| Encoding | Being processed, with a percentage. |
| Ready | Encoded and playable. Only Ready videos can be embedded. |
| Failed | Processing stopped. The reason is shown, and you can select Retry encoding. |
A video can have chapters, a transcript and a thumbnail you pick. See Manage videos.
Collections
A collection groups videos of one library, for example the lessons of one course. You create collections and add videos to them through the API, then list a collection's videos with the collection_id filter. See Create a collection.
Private key
Each library has its own private key, starting with ovk_. Your server sends it in the AccessKey header to call the API for that library. Keep it on your server only: never put it in a web page or a mobile app. You can copy or regenerate it in API & embeds → Custom Backend. See Authentication.
One-time playback passwords (OTP)
The player never plays a video without an OTP. An OTP unlocks one video, expires after a short time and can be used once. OTP authentication is always on and can't be turned off.
There are two ways to get one:
- Quick Embed: the console generates an iframe with an OTP that stays valid for one month. No server is needed. Good for previews and testing.
- Custom Backend: your server requests a new OTP for each viewer on each page view, with the library's private key. This is the most secure way and the one to use for paid content.
See Embedding and Secure playback.
Allowed domains
Each library has a list of domains its videos may play on, such as academy.example.com or *.example.com. When the list is empty any website can embed your videos, so add your domains before you go live. See Security.