Live video assets and uploads
Console client configuration · Response and shared models
Request an upload URL, upload bytes with uploadFile, then create the asset using its objectKey. Video uploads default to video/mp4. The list response uses the videos array.
For a file-based live class, pass the asset’s liveVideoId and liveSourceKind=file when creating the classroom. classrooms.setLiveSource uses the field kind. Push mode obtains the push URL and expiry through classrooms.issueLivePushCredential.
Application backends use application business APIs with app credentials. This page describes the separate tenant management calls.
liveVideos.list
List live video assets.
GET /v1/live-videos
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.liveVideos.list(appId, input) |
| Python | c.live_videos.list(app_id, **input) |
| Java | c.liveVideos.list(appId, input) |
| Go | c.LiveVideos.List(ctx, appID, input, &result) |
| PHP | $c->liveVideos->list($appId, $input) |
Input: PaginationInput. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
page | No | number | undefined | Page number starting at 1 |
pageSize | No | number | undefined | Maximum items per page |
Returns: ListLiveVideosResult. See shared models for nested fields.
liveVideos.createUploadUrl
Create live video upload URL.
POST /v1/live-videos/upload-url
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.liveVideos.createUploadUrl(appId, input) |
| Python | c.live_videos.create_upload_url(app_id, **input) |
| Java | c.liveVideos.createUploadUrl(appId, input) |
| Go | c.LiveVideos.CreateUploadUrl(ctx, appID, input, &result) |
| PHP | $c->liveVideos->createUploadUrl($appId, $input) |
Input: LiveVideoUploadInput. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
fileName | Yes | string | File name including extension |
contentType | No | string | undefined | File MIME type |
Returns: LiveVideoUploadResult. See shared models for nested fields.
liveVideos.create
Create live video asset.
POST /v1/live-videos
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.liveVideos.create(appId, input) |
| Python | c.live_videos.create(app_id, **input) |
| Java | c.liveVideos.create(appId, input) |
| Go | c.LiveVideos.Create(ctx, appID, input, &result) |
| PHP | $c->liveVideos->create($appId, $input) |
Input: CreateLiveVideoInput. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
title | Yes | string | Video asset title |
objectKey | Yes | string | Object key from the upload response |
contentHash | No | string | undefined | File SHA-256 in lowercase hex; courseware requires 64 characters |
sizeBytes | No | number | undefined | File size in bytes |
Returns: LiveVideoRecord. See shared models for nested fields.
liveVideos.remove
Delete live video asset.
DELETE /v1/live-videos/remove
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.liveVideos.remove(appId, input) |
| Python | c.live_videos.remove(app_id, **input) |
| Java | c.liveVideos.remove(appId, input) |
| Go | c.LiveVideos.Remove(ctx, appID, input, &result) |
| PHP | $c->liveVideos->remove($appId, $input) |
Input: LiveVideoIdInput. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
liveVideoId | Yes | string | Live video asset ID |
Returns: DeleteResult. See shared models for nested fields.