List videos
Lists the videos of the library, one page at a time, newest first.
AccessKeyAccessKey<token>The private key of a library, starting with ovk_. Copy it from API & embeds in the console, keep it on your server, and rotate it there if it leaks.
page?integerPage number, starting at 1.
1 <= value1per_page?integerItems per page.
1 <= value <= 10025collection_id?stringOnly return videos in this collection.
uuidAccessKey*stringThe library's private key. Same value as the AccessKey security scheme; listed here so code samples include it.
One page of videos.
application/json- response
data*array<>meta*curl -X GET 'https://api.octavideo.tech/api/v1/videos' \ -H 'AccessKey: ovk_YOUR_LIBRARY_PRIVATE_KEY'{ "data": [ { "id": "6f1c2b9e-4a7d-4f3e-9b8a-2d5c7e1f0a34", "library_id": "0b8e5d3a-1c2f-4e6a-8b7d-9f0a1b2c3d4e", "title": "Lesson 1: Introduction", "description": "", "encoding_status": "ready", "progress": 100, "duration_seconds": 754.2, "size_bytes": 412337152, "chapters": [], "created_at": "2026-10-25T09:30:00Z" } ], "meta": { "page": 1, "per_page": 25, "total": 1 }}Import a video POST
Imports a video from Google Drive, OneDrive or a public URL. The import runs in the background: the response is `202 Accepted` with a `job_id` and the new video in the `queued` status. For `url`, `source_ref` must be an absolute `http` or `https` URL.
Get a video GET
Returns one video, including its processing status. Poll this endpoint after an upload or import: `encoding_status` moves from `queued` to `processing` to `ready` (or `failed`), and `progress` goes from 0 to 100.