Video indexing tasks

This method of uploading videos will be deprecated in a future version. New implementations should use direct uploads or multipart uploads followed by separate indexing.

A video indexing task represents a request to upload and index a video. The TaskClientWrapper class provides methods to manage your video indexing tasks.

Methods

Create a video indexing task

Description: This method creates a new video indexing task that uploads and indexes a video.

Your video files must meet requirements based on the models enabled for your index:

Note

This method is rate-limited. For details, see the Rate limits page.

Function signature and example:

1def create(
2 self,
3 *,
4 index_id: str,
5 video_file: typing.Optional[core.File] = OMIT,
6 video_url: typing.Optional[str] = OMIT,
7 enable_video_stream: typing.Optional[bool] = OMIT,
8 request_options: typing.Optional[RequestOptions] = None,
9) -> TasksCreateResponse:

Parameters:

NameTypeRequiredDescription
index_idstrYesThe unique identifier of the index to which the video will be uploaded.
video_filetyping.
Optional
[core.File]
NoThe video file to upload.
video_urltyping.
Optional[str]
NoThe publicly accessible URL of the video you want to upload.
enable_video_streamtyping.
Optional[bool]
NoIndicates if the platform stores the video for streaming. When set to true, the platform stores the video, and you can retrieve its URL by. For details, see the Retrieve video information page.
user_metadata:typing.Optional[str]NoMetadata that helps you categorize your videos. You can specify a stringified list of keys and values.
request_optionstyping.
Optional
[RequestOptions]
NoRequest-specific configuration.

Return value: Returns a TasksCreateResponse instance.

The TasksCreateResponse interface contains the following properties:

NameTypeDescription
idstringThe unique identifier of your video indexing task.
video_idstringThe unique identifier of the video associated with your video indexing task.

API Reference: Create a video indexing task.

Retrieve a video indexing task

Description: This method retrieves the details of a specific video indexing task.

Function signature and example:

1def retrieve(
2 self, task_id: str, *, request_options: typing.Optional[RequestOptions] = None
3) -> TasksRetrieveResponse

Parameters:

NameTypeRequiredDescription
task_idstrYesThe unique identifier of the video indexing task to retrieve.
request_optionstyping.Optional[RequestOptions]NoRequest-specific configuration.

Return value: Returns a TasksRetrieveResponse object representing the retrieved video indexing task.

The TasksRetrieveResponse class extends VideoIndexingTask and contains the following properties:

NameTypeDescription
idOptional[str]The unique identifier of the task.
video_idOptional[str]The unique identifier of the video associated with the specified video indexing task.
created_atOptional[str]The date and time, in the RFC 3339 format, that the task was created.
updated_atOptional[str]The date and time, in the RFC 3339 format, that the task object was last updated.
statusOptional[str]The status of the video indexing task.
index_idOptional[str]The unique identifier of the index to which the video must be uploaded.
system_metadataOptional[VideoIndexingTaskSystemMetadata]System-generated metadata about the video.
hlsOptional[HlsObject]HLS streaming information for the video.

The VideoIndexingTaskSystemMetadata class contains the following properties:

NameTypeDescription
durationOptional[float]The duration of the video.
filenameOptional[str]The filename of the video.
heightOptional[int]The height of the video.
widthOptional[int]The width of the video.

The HlsObject class contains the following properties:

NameTypeDescription
video_urlOptional[str]The URL of the video for HLS streaming.
thumbnail_urlsOptional[List[str]]An array containing the URL of the thumbnail.
statusOptional[HlsObjectStatus]The encoding status of the video file from its original format to a streamable format. Possible values: PROCESSING, COMPLETE, CANCELED, ERROR.
updated_atOptional[str]The date and time, in the RFC 3339 format, that the encoding status was last updated.

API Reference: Retrieve a video indexing task.

Wait for a video indexing task to complete

Description: This method waits until a video indexing task is completed. It checks the task status at regular intervals by retrieving its details. If you provide a callback function, the method calls it after each status check with the current task object. This allows you to monitor the progress of the task.

Function signature and example:

1def wait_for_done(
2 self,
3 task_id: str,
4 *,
5 sleep_interval: float = 5.0,
6 callback: typing.Optional[
7 typing.Callable[[TasksRetrieveResponse], None]
8 ] = None,
9 request_options: typing.Optional[RequestOptions] = None,
10) -> TasksRetrieveResponse

Parameters:

NameTypeRequiredDescription
task_idstrYesThe unique identifier of the task to wait for.
sleep_intervalfloatNoThe time in seconds to wait between status checks. Must be greater than 0. Default: 5.0.
callbackOptional
[Callable
[[TasksRetrieveResponse], None]]
NoAn optional function to call after each status check, receiving the current task object. Use this to monitor progress.
request_optionsOptional[RequestOptions]NoRequest-specific configuration.

Return value: Returns a TasksRetrieveResponse object representing the completed task. See the Retrieve a video indexing task section above for complete property details.

List video indexing tasks

Description: This method returns a paginated list of the video indexing tasks in your account. By default, the platform returns your video indexing tasks sorted by creation date, with the newest at the top of the list.

Function signature and example:

1def list(
2 self,
3 *,
4 page: typing.Optional[int] = None,
5 page_limit: typing.Optional[int] = None,
6 sort_by: typing.Optional[str] = None,
7 sort_option: typing.Optional[str] = None,
8 index_id: typing.Optional[str] = None,
9 status: typing.Optional[
10 typing.Union[TasksListRequestStatusItem, typing.Sequence[TasksListRequestStatusItem]]
11 ] = None,
12 filename: typing.Optional[str] = None,
13 duration: typing.Optional[float] = None,
14 width: typing.Optional[int] = None,
15 height: typing.Optional[int] = None,
16 created_at: typing.Optional[str] = None,
17 updated_at: typing.Optional[str] = None,
18 request_options: typing.Optional[RequestOptions] = None,
19) -> SyncPager[VideoIndexingTask]

Parameters:

NameTypeRequiredDescription
pagetyping.Optional[int]NoThe page number to retrieve. Default: 1.
page_limittyping.Optional[int]NoThe number of items per page. Default: 10. Max: 50.
sort_bytyping.Optional[str]NoThe field to sort by: "created_at" or "updated_at". Default: "created_at".
sort_optiontyping.Optional[str]NoThe sort order: "asc" or "desc". Default: "desc".
index_idtyping.Optional[str]NoFilter by the unique identifier of an index.
statustyping.
Optional
[typing.Union
[TasksListRequestStatusItem, typing.Sequence
[TasksListRequestStatusItem]]]
NoFilter by task status. Options: "ready", "uploading", "validating", "pending", "queued", "indexing", or "failed". You can specify multiple statuses.
filenametyping.Optional[str]NoFilter by filename.
durationtyping.Optional[float]NoFilter by duration in seconds.
widthtyping.Optional[int]NoFilter by video width.
heighttyping.Optional[int]NoFilter by video height.
created_attyping.Optional[str]NoFilter video indexing tasks by the creation date and time, in the RFC 3339 format. The platform returns the video indexing tasks that were created on the specified date at or after the given time.
updated_attyping.Optional[str]NoFilter video indexing tasks by the last update date and time, in the RFC 3339 format. The platform returns the video indexing tasks that were updated on the specified date at or after the given time.
request_optionstyping.Optional[RequestOptions]NoRequest-specific configuration.

Return value: Returns a SyncPager[VideoIndexingTask] object that allows you to iterate through the paginated list of video indexing tasks.

The VideoIndexingTask class contains the following properties:

NameTypeDescription
idOptional[str]The unique identifier of the task.
video_idOptional[str]The unique identifier of the video associated with the specified video indexing task.
created_atOptional[str]The date and time, in the RFC 3339 format, that the task was created.
updated_atOptional[str]The date and time, in the RFC 3339 format, that the task object was last updated.
statusOptional[str]The status of the video indexing task.
index_idOptional[str]The unique identifier of the index to which the video must be uploaded.
system_metadataOptional[VideoIndexingTaskSystemMetadata]System-generated metadata about the video.

The VideoIndexingTaskSystemMetadata class contains the following properties:

NameTypeDescription
durationOptional[float]The duration of the video.
filenameOptional[str]The filename of the video.
heightOptional[int]The height of the video.
widthOptional[int]The width of the video.

API Reference: List video indexing tasks.

Delete a video indexing task

Description: This method deletes an existing video indexing task. This action cannot be undone. You can only delete video indexing tasks for which the status is ready or failed. If the status of your video indexing task is ready, you must first delete the video vector associated with your video indexing task.

Function signature and example:

1def delete(self, task_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None

Parameters:

NameTypeRequiredDescription
task_idstrYesThe unique identifier of the video indexing task to delete.
request_optionstyping.Optional[RequestOptions]NoRequest-specific configuration.

Return value: None. This method doesn’t return any data upon successful completion.

API Reference: Delete a video indexing task.

Error codes

This section lists the most common error messages you may encounter while uploading videos.

  • video_resolution_too_low
    • The resolution of the video is too low. Please upload a video with resolution between 360x360 and 5184x2160. Current resolution is {current_resolution}.
  • video_resolution_too_high
    • The resolution of the video is too high. Please upload a video with resolution between 360x360 and 5184x2160. Current resolution is {current_resolution}.
  • video_resolution_invalid_aspect_ratio
    • The aspect ratio of the video is invalid. Please upload a video with aspect ratio between 1:1 and 2.4:1. Current resolution is {current_resolution}.
  • video_file_broken
    • Cannot read video file. Please check the video file is valid and try again.
  • task_cannot_be_deleted
    • (Returns raw error message)
  • usage_limit_exceeded
  • video_filesize_too_large
    • The video is too large. Please use a video with a size less than {maximum_size}. The current size is {current_file_size}.
  • video_duration_too_short
    • The video is too short. Please use a video with duration at least {minimum_duration} seconds. Current duration is {current_duration} seconds.
  • video_duration_too_long
    • The video is too long. Please use a video with duration at most {maximum_duration} seconds. Current duration is {current_duration} seconds.

Note that the minimum and maximum durations depend on the models enabled for your index. For details, see the input requirements of each model on the Marengo and Pegasus pages. If both models are enabled, the most restrictive requirements apply.