Posters
Posters list
{{baseHost}}/v1/videos/:video_id/postersReturns a list of posters. Results are paginated and can be filtered via query parameters.
{ "meta": { "pagination": { "page": 1, "per_page": 10, "total": 1 }, "order": { "created_at": "desc" } }, "data": [ { "id": "<UUID>", "type": "image", "from_time": 0, "status": "done", "active": true, "to_time": 0, "original": "https://kinescopecdn.net/<UUID>/posters/<UUID>/<UUID>.jpg", "md": "https://kinescopecdn.net/<UUID>/posters/<UUID>/md/<UUID>.jpg", "sm": "https://kinescopecdn.net/<UUID>/posters/<UUID>/sm/<UUID>.jpg", "xs": "https://kinescopecdn.net/<UUID>/posters/<UUID>/xs/<UUID>.jpg" } ]}Create poster by time
{{baseHost}}/v1/videos/:video_id/postersGenerates a poster image from a frame of the video at the specified timestamp. The poster is attached to the video and can be made active.
{ "from_time": 2.3333}Get poster
{{baseHost}}/v1/videos/:video_id/posters/:poster_idRetrieves the details of a single poster by its unique ID.
{ "data": { "id": "<UUID>", "type": "image", "from_time": 0, "status": "done", "active": true, "to_time": 0, "original": "https://kinescopecdn.net/<UUID>/posters/<UUID>/<UUID>.jpg", "md": "https://kinescopecdn.net/<UUID>/posters/<UUID>/md/<UUID>.jpg", "sm": "https://kinescopecdn.net/<UUID>/posters/<UUID>/sm/<UUID>.jpg", "xs": "https://kinescopecdn.net/<UUID>/posters/<UUID>/xs/<UUID>.jpg" }}{ "error": { "code": 400404, "message": "not found" }}Set active poster
{{baseHost}}/v1/videos/:video_id/posters/:poster_id/activeMarks the specified poster as the active one — it will be shown in the video player and in lists.
Delete poster
{{baseHost}}/v1/videos/:video_id/posters/:poster_idPermanently deletes the poster. This action cannot be undone.
Subtitles
List subtitles
{{baseHost}}/v1/videos/:video_id/subtitlesReturns a list of subtitles. Results are paginated and can be filtered via query parameters.
| Parameter | Type | Description |
|---|---|---|
language | text | Example: ru |
description | text | Example: subtitle file description |
file | file | — |
{ "data": null}Add subtitle file
{{baseHost}}/v1/videos/:video_id/subtitlesUploads a subtitle file (VTT or SRT) and attaches it to the video under the specified language.
| Parameter | Type | Description |
|---|---|---|
language | text | Example: ru |
description | text | Example: subtitle file description |
file | file | — |
{ "data": { "id": "<UUID>", "video_id": "<UUID>", "description": "subtitle file description", "language": "ru", "file": "", "file_name": "<UUID>.vtt", "hls_file": "", "url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>" }}Generate subtitles automatically
{{baseHost}}/v1/videos/:video_id/subtitles/autoQueues speech recognition for the video and creates one subtitle track per requested language. Pass the languages as ISO 639-1 codes in languages; an unknown code is rejected with 400, and either all tracks are created or none are.
The response returns immediately, before recognition starts, so every track comes back with status: "pending", an empty data object and an empty url. Poll GET /v1/videos/:video_id/subtitles/:subtitle_id until status becomes done — the recognised cues and the .vtt URL appear at that point.
| Parameter | Type | Description |
|---|---|---|
languages | array of string | Languages to recognise, as ISO 639-1 codes. One subtitle track is created per element. Example: ["ru", "en"] |
{ "languages": [ "ru", "en" ]}{ "data": [ { "id": "<UUID>", "video_id": "<UUID>", "description": "", "language": "ru", "status": "pending", "position": 1, "data": {}, "active": true, "url": "", "updated_at": "2024-03-04T11:54:32.451502Z", "file": "", "file_name": "<UUID>.vtt", "hls_file": "" } ]}Reorder
{{baseHost}}/v1/videos/:video_id/subtitles/reorderChanges the order of subtitle tracks. Pass the full list of subtitle IDs in the desired order.
[ "<UUID>", "<UUID>", "<UUID>", "<UUID>"]{ "data": { "id": "<UUID>", "video_id": "<UUID>", "description": "subtitle file description", "language": "ru", "file": "", "file_name": "<UUID>.vtt", "hls_file": "", "url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>" }}Get subtitle
{{baseHost}}/v1/videos/:video_id/subtitles/:subtitle_idRetrieves the details of a single subtitle by its unique ID.
| Parameter | Type | Description |
|---|---|---|
language | text | Example: ru |
description | text | Example: subtitle file description |
file | file | — |
{ "data": { "id": "<UUID>", "video_id": "<UUID>", "description": "subtitle file description", "language": "ru", "file": "", "file_name": "<UUID>.vtt", "hls_file": "", "url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>" }}Update subtitle info
{{baseHost}}/v1/videos/:video_id/subtitles/:subtitle_idUpdates the metadata of a subtitle track (language, description, ordering).
{ "language": "ru", "description": "desc111"}{ "data": { "id": "<UUID>", "video_id": "<UUID>", "description": "desc", "language": "ru", "file": "", "file_name": null, "hls_file": "", "url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>" }}Copy
{{baseHost}}/v1/videos/:video_id/subtitles/:subtitle_id/copyDuplicates a subtitle track. Useful for creating a variant based on an existing translation.
{ "data": { "id": "<UUID>", "video_id": "<UUID>", "description": "desc", "language": "ru", "file": "", "file_name": null, "hls_file": "", "url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>" }}Delete subtitle
{{baseHost}}/v1/videos/:video_id/subtitles/:subtitle_idPermanently deletes the subtitle. This action cannot be undone.
{ "data": { "success": true }}Annotations
Get annotation
{{baseHost}}/v1/videos/:video_id/annotations/:annotation_idRetrieves the details of a single annotation by its unique ID.
{ "data": { "id": "<UUID>", "media_id": "<UUID>", "video_id": null, "annotation_type": "text", "title": "ann1", "link": "", "start_time": 0, "end_time": 6740, "annotation_poster_id": "<UUID>", "created_at": "2024-02-27T10:04:30.259938Z", "updated_at": null }}List annotations
{{baseHost}}/v1/videos/:video_id/annotationsReturns a list of annotations. Results are paginated and can be filtered via query parameters.
{ "data": []}Add annotation
{{baseHost}}/v1/videos/:video_id/annotationsCreates a new annotation. Returns the newly created object on success.
{ "video_id": "<UUID>", "annotation_poster_id": "<UUID>", "type": "video/text", "title": "new annotation", "link": "https://example.com", "start_time": 0, "end_time": 10000}{ "data": { "id": "<UUID>", "media_id": "<UUID>", "video_id": "<UUID>", "annotation_type": "video", "title": "annotation 1", "link": "", "start_time": 20000, "end_time": 21000, "annotation_poster_id": null, "created_at": "2024-03-04T11:54:32.451502Z", "updated_at": null }}Update annotation
{{baseHost}}/v1/videos/:video_id/annotations/:annotation_idUpdates the specified annotation. Only fields provided in the request body are changed; others are left unchanged.
{ "video_id": "<UUID>", "annotation_poster_id": "<UUID>", "title": "new annotation", "link": "https://example.com", "start_time": 0, "end_time": 10000}{ "data": { "id": "<UUID>", "media_id": "<UUID>", "video_id": "<UUID>", "annotation_type": "video", "title": "annotation 1", "link": "", "start_time": 20000, "end_time": 21000, "annotation_poster_id": null, "created_at": "2024-03-04T11:54:32.451502Z", "updated_at": null }}Delete annotation
{{baseHost}}/v1/videos/:video_id/annotations/:annotation_idPermanently deletes the annotation. This action cannot be undone.
{ "data": { "success": true }}Additional materials
Upload additional material
{{uploadHost}}/additional-materialUploads a file to be attached to a video as additional material (e.g. a PDF handout or source files).
| Parameter | Description |
|---|---|
X-Video-ID | 4iUMUmb63dLAvnbsMRkSUX |
X-File-Name | material.png |
X-Title | Material title |
Get download link
{{baseHost}}/v1/additional-materials/:material_id/linkReturns a short-lived signed URL for downloading the material.
{ "data": { "link": "https://..." }}Update additional material
{{baseHost}}/v1/additional-materials/:material_idUpdates the specified additional material. Only fields provided in the request body are changed; others are left unchanged.
{ "title": "New title"}{ "data": { "id": "8VYZT2rW5vbvRBcWruuNFo", "video_id": "fq48rAScQ5zAYKJ2gYHZ3w", "storage_id": "mucjva43n3sLsw5YRwsZYS", "title": "New title", "filename": "img.png", "filetype": "image/png", "size": 163427, "position": 1, "created_at": "2020-08-30T15:14:03.792708Z", "updated_at": "2020-08-31T10:22:43.67869Z", "deleted_at": null }}Reorder additional materials
{{baseHost}}/v1/additional-materials/reorderChanges the display order of the additional materials attached to a video.
[ "8VYZT2rW5vbvRBcWruuNFo", "b32Wjbh6a3pYNaKvfxhXFU"]{ "data": { "success": true }}Delete additional material
{{baseHost}}/v1/additional-materials/:material_idPermanently deletes the additional material. This action cannot be undone.
{ "data": { "success": true }}Posters
Upload poster
{{uploadHost}}/v2/posterUploads a custom poster image for a live event.
| Parameter | Description |
|---|---|
X-Video-ID | 4iUMUmb63dLAvnbsMRkSUX |
X-Poster-URL | url to poster |