Manage assets

The AssetsClient class provides methods to work with assets after you upload them. Use these methods to retrieve and list assets, manage their user-defined metadata, retrieve transcriptions, and delete assets you no longer need.

To create an asset, see the Direct uploads or Multipart uploads page.

Methods

List assets

Description: This method returns a list of assets in your account.

The platform returns your assets 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 asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
7 asset_types: typing.Optional[
8 typing.Union[AssetsListRequestAssetTypesItem, typing.Sequence[AssetsListRequestAssetTypesItem]]
9 ] = None,
10 filename: typing.Optional[str] = None,
11 request_options: typing.Optional[RequestOptions] = None,
12) -> SyncPager[AssetDetail]

Parameters

NameTypeRequiredDescription
pageintNoA number that identifies the page to retrieve. Default: 1.
page_limitintNoThe number of items to return on each page. Default: 10. Max: 50.
asset_idsUnion[str, Sequence[str]]NoFilters the response to include only assets with the specified IDs. Provide one or more asset IDs. When you specify multiple IDs, the platform returns all matching assets.
asset_typesUnion[AssetsListRequestAssetTypesItem, Sequence[AssetsListRequestAssetTypesItem]]NoFilters the response to include only assets of the specified types. Provide one or more asset types. When you specify multiple types, the platform returns all matching assets. Values: image, video, audio.
filenamestrNoFilters the response to include only assets whose filename contains the specified string. The match is case-insensitive and supports partial matching.
request_optionsRequestOptionsNoRequest-specific configuration.

Return value

Returns a SyncPager[AssetDetail] object containing a paginated list of AssetDetail objects. The AssetDetail class extends Asset with additional fields for HLS streaming and thumbnail details. For details about the AssetDetail class, see the Retrieve an asset section below.

The SyncPager[T] class contains the following properties and methods:

NameTypeDescription
itemsOptional[List[T]]A list containing the current page of items. Can be None.
has_nextboolIndicates whether there is a next page to load.
get_nextOptional[Callable[[], Optional[SyncPager[T]]]]A callable function that retrieves the next page. Can be None.
responseOptional[BaseHttpResponse]The HTTP response object. Can be None.
next_page()Optional[SyncPager[T]]Calls get_next() if available and returns the next page object.
__iter__()Iterator[T]Allows iteration through all items across all pages using for loops.
iter_pages()Iterator[SyncPager[T]]Allows iteration through page objects themselves.

API Reference

List assets

Retrieve an asset

Description: This method retrieves details about the specified asset.

Function signature and example:

1def retrieve(
2 self,
3 asset_id: str,
4 *,
5 request_options: typing.Optional[RequestOptions] = None
6) -> AssetDetail

Parameters

NameTypeRequiredDescription
asset_idstrYesThe unique identifier of the asset to retrieve.
request_optionsRequestOptionsNoRequest-specific configuration.

Return value

Returns an AssetDetail object containing details about the specified asset.

The AssetDetail class extends Asset (documented in the Create an asset section above) with the following additional properties:

NameTypeDescription
hlsOptional[AssetHls]HLS streaming details for the asset. Present only when HLS generation has been requested.
thumbnailOptional[AssetThumbnail]Thumbnail details for the asset. Present only when thumbnail generation has been requested.
technical_metadataOptional[TechnicalMetadata]Technical metadata read from the media file of the asset, covering the container, the individual video and audio streams, image properties, and derived attributes.

The platform populates this object asynchronously after the upload completes. It is omitted from the response while the status of the asset is processing, and it may be partially populated when the status is failed. A field is absent when it does not apply to the media type of the asset, or when the source file did not carry the corresponding information.

The AssetHls class contains the following properties:

NameTypeDescription
manifest_urlOptional[str]The URL of the HLS manifest file for streaming. Only present when the status is ready.
statusOptional[AssetHlsStatus]The status of the HLS stream. Values: pending (the platform has not yet started HLS generation), processing (the platform is generating HLS segments), ready (the HLS stream is ready for playback), error (HLS generation failed).

The AssetThumbnail class contains the following properties:

NameTypeDescription
representative_urlOptional[str]The URL of the representative thumbnail image. Only present when the status is ready.
statusOptional[AssetThumbnailStatus]The status of the thumbnail. Values: pending (the platform has not yet started thumbnail generation), processing (the platform is generating the thumbnail), ready (the thumbnail is ready), error (thumbnail generation failed).

The TechnicalMetadata class contains the following properties:

NameTypeDescription
file_size_bytesOptional[int]The size of the source media file in bytes.
file_mime_typeOptional[str]The MIME type detected for the source media file.
file_container_formatOptional[str]The container format of the source media file. When a container maps to several format names, the platform reports them as a comma-separated list.
container_creation_timeOptional[datetime]The creation time recorded in the media container, in RFC 3339 format (“YYYY-MM-DDTHH:mm:ssZ”), when present.
video_streamsOptional[List[VideoStream]]The video streams contained in the media file.
video_codecOptional[str]The codec of the primary video stream.
video_widthOptional[int]The pixel width of the primary video stream.
video_heightOptional[int]The pixel height of the primary video stream.
video_fpsOptional[float]The frame rate of the primary video stream, in frames per second.
video_duration_secondsOptional[float]The duration of the primary video stream, in seconds.
video_bitrate_bpsOptional[int]The bit rate of the primary video stream, in bits per second.
audio_streamsOptional[List[AudioStream]]The audio streams contained in the media file.
audio_codecOptional[str]The codec of the primary audio stream.
audio_sample_rateOptional[int]The sample rate of the primary audio stream, in hertz.
audio_channelsOptional[int]The number of channels in the primary audio stream.
audio_duration_secondsOptional[float]The duration of the primary audio stream, in seconds.
start_timecodeOptional[str]The starting SMPTE timecode of the media, when present.
timecode_sourceOptional[str]The source from which the starting timecode was derived.
drop_frameOptional[bool]Whether the timecode uses drop-frame numbering.
image_widthOptional[int]The pixel width of the image.
image_heightOptional[int]The pixel height of the image.
image_formatOptional[str]The format of the image.
image_orientationOptional[int]The EXIF orientation value of the image.
image_color_spaceOptional[str]The color space of the image.
image_bit_depthOptional[int]The bit depth per channel of the image.
is_hdrOptional[bool]Whether the media is high dynamic range (HDR).
has_audioOptional[bool]Whether the media contains at least one audio stream.
has_alphaOptional[bool]Whether the image contains an alpha (transparency) channel.
is_animatedOptional[bool]Whether the image is animated (for example, an animated GIF or WebP).
total_video_streamsOptional[int]The total number of video streams in the media file.
total_audio_streamsOptional[int]The total number of audio streams in the media file.
storage_aspect_ratioOptional[float]The storage aspect ratio of the video (pixel width divided by pixel height).
geospatial_latitudeOptional[float]The GPS latitude embedded in the source media, in decimal degrees. Present only when the source media carries location metadata.
geospatial_longitudeOptional[float]The GPS longitude embedded in the source media, in decimal degrees. Present only when the source media carries location metadata.
geospatial_altitude_metersOptional[float]The GPS altitude embedded in the source media, in meters. Present only when the source media carries location metadata.

The VideoStream class contains the following properties:

NameTypeDescription
indexOptional[int]The zero-based index of the stream within the media file.
codecOptional[str]The codec of the video stream.
widthOptional[int]The pixel width of the video stream.
heightOptional[int]The pixel height of the video stream.
fpsOptional[float]The nominal frame rate of the video stream, in frames per second.
avg_fpsOptional[float]The average frame rate of the video stream, in frames per second.
duration_secondsOptional[float]The duration of the video stream, in seconds.
bitrate_bpsOptional[int]The bit rate of the video stream, in bits per second.
rotationOptional[int]The rotation applied to the video stream, in degrees.
pixel_aspect_ratioOptional[str]The pixel (sample) aspect ratio of the video stream.
display_aspect_ratioOptional[str]The display aspect ratio of the video stream.
scan_typeOptional[str]The scan type of the video stream (for example, progressive or interlaced).
pixel_formatOptional[str]The pixel format of the video stream.
bit_depthOptional[int]The bit depth per color component of the video stream.
color_rangeOptional[str]The color range of the video stream.
color_transferOptional[str]The color transfer characteristics of the video stream.
color_spaceOptional[str]The color space of the video stream.
color_primariesOptional[str]The color primaries of the video stream.

The AudioStream class contains the following properties:

NameTypeDescription
indexOptional[int]The zero-based index of the stream within the media file.
codecOptional[str]The codec of the audio stream.
codec_longOptional[str]The descriptive long name of the audio codec.
sample_rateOptional[int]The sample rate of the audio stream, in hertz.
bit_depthOptional[int]The bit depth of the audio stream.
channelsOptional[int]The number of channels in the audio stream.
channel_layoutOptional[str]The channel layout of the audio stream.
bitrate_bpsOptional[int]The bit rate of the audio stream, in bits per second.
languageOptional[str]The language of the audio stream, when present.
duration_secondsOptional[float]The duration of the audio stream, in seconds.

API Reference

Retrieve an asset

Delete an asset

Description: This method deletes the specified asset. This action cannot be undone. By default, the platform checks whether any indexed assets reference the asset. If references exist, the request fails with a 409 Conflict error. Set the force parameter to true to delete the asset regardless.

Function signature and example:

1def delete(
2 self,
3 asset_id: str,
4 *,
5 force: typing.Optional[bool] = None,
6 request_options: typing.Optional[RequestOptions] = None
7) -> None

Parameters

NameTypeRequiredDescription
asset_idstrYesThe unique identifier of the asset to delete.
forceboolNoWhen set to true, the platform deletes the asset even if indexed assets reference it. When set to false or omitted, the request fails with 409 Conflict if references exist. Default: false.
request_optionsRequestOptionsNoRequest-specific configuration.

Return value

Returns None.

API Reference

Delete asset

Delete the user-defined metadata of an asset

Description: This method deletes the user-defined metadata of the specified asset. To achieve the same result, you can also send an empty object ({}) in the user_metadata field of the replace_user_metadata method.

This action cannot be undone.

Function signature and example:

1def delete_user_metadata(
2 self,
3 asset_id: str,
4 *,
5 request_options: typing.Optional[RequestOptions] = None,
6) -> None

Parameters

NameTypeRequiredDescription
asset_idstrYesThe unique identifier of the asset whose user-defined metadata to delete.
request_optionsRequestOptionsNoRequest-specific configuration.

Return value

Returns None.

API Reference

Delete the user-defined metadata of an asset

Update the user-defined metadata of an asset

Description: This method updates the user-defined metadata of the specified asset. The platform merges your changes with the existing metadata:

  • A key with a value creates or replaces that key.
  • A key set to null deletes that key.
  • A key set to an empty string ("") is ignored.
  • A key you omit from the request keeps its current value.

To replace all metadata in a single call, use the replace_user_metadata method instead.

Function signature and example:

1def update_user_metadata(
2 self,
3 asset_id: str,
4 *,
5 user_metadata: UserMetadata,
6 request_options: typing.Optional[RequestOptions] = None,
7) -> None

Parameters

NameTypeRequiredDescription
asset_idstrYesThe unique identifier of the asset whose user-defined metadata to update.
user_metadataUserMetadataYesThe metadata to set or update. Keys must be of type string, and values can be of the following types: string, integer, float, or boolean.
request_optionsRequestOptionsNoRequest-specific configuration.

Return value

Returns None.

API Reference

Update the user-defined metadata of an asset

Replace the user-defined metadata of an asset

Description: This method replaces the entire user-defined metadata of the specified asset. Unlike the update_user_metadata method, which merges your changes with the existing metadata, this method overwrites the stored value in full:

  • A key with a value creates or replaces that key.
  • A key set to an empty string ("") or null is ignored.
  • A key you omit from the request body is removed.

To clear all metadata, send an empty object ({}) in the user_metadata field. This produces the same result as the delete_user_metadata method.

Function signature and example:

1def replace_user_metadata(
2 self,
3 asset_id: str,
4 *,
5 user_metadata: UserMetadata,
6 request_options: typing.Optional[RequestOptions] = None,
7) -> None

Parameters

NameTypeRequiredDescription
asset_idstrYesThe unique identifier of the asset whose user-defined metadata to replace.
user_metadataUserMetadataYesThe metadata to set. Keys must be of type string, and values can be of the following types: string, integer, float, or boolean.
request_optionsRequestOptionsNoRequest-specific configuration.

Return value

Returns None.

API Reference

Replace the user-defined metadata of an asset

Error codes

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

  • content_type_invalid
    • The content type {content_type} is not supported. Please use multipart/form-data.
  • multipart_boundary_missing
    • Multipart boundary is missing. Please provide the boundary in the Content-Type header.
  • invalid_multipart
    • Invalid multipart form. Please check your implementation and try again.
  • echo bind error
    • (Returns the raw bind error message)
  • echo validate error
    • (Returns a validator-generated message, for example: Key: 'CreateAssetRequest.Method' Error:Field validation for 'Method' failed on the 'oneof' tag)
  • parameter_not_provided
    • The file parameter is required but was not provided. file is required when method is direct.
    • The url parameter is required but was not provided. url is required when method is url.
  • parameter_invalid
    • The method parameter is invalid. To upload in parts, use the /assets/multipart-uploads endpoint.
    • The file parameter is invalid. Unable to process the uploaded file. Please try uploading again.
    • The file parameter is invalid. Unsupported asset type: {asset_type}.
    • The image parameter is invalid. Image dimensions {current_dimensions} are below the minimum {minimum_dimensions}.
    • The image parameter is invalid. Invalid image file. Please check the format and dimensions.
  • media_url_unsupported_format
    • The file at the provided URL is not a supported media format. Detected format: {detected_format}. Please provide a valid asset file.
  • media_url_not_accessible
    • Cannot access the media URL {url}. The server responded with an error. Please verify the URL is correct and publicly accessible.
  • media_url_file_broken
    • Cannot read the media file at the specified URL. Please verify the file is valid and try again.
  • media_filesize_too_large
    • The media file is too large. Please upload a file smaller than {maximum_size}. The current size is {current_size}.
  • video_file_broken
    • Unable to process video file. Please check if the file is valid and try again.
  • video_file_live
    • Live video streams are not supported. Please provide a URL that is not a live stream.
  • video_resolution_too_low
    • The resolution of the video is too low. Please upload a video with a resolution between {minimum_resolution} and {maximum_resolution}. Current resolution is {current_resolution}.
  • video_resolution_too_high
    • The resolution of the video is too high. Please upload a video with a resolution between {minimum_resolution} and {maximum_resolution}. Current resolution is {current_resolution}.
  • video_resolution_invalid_aspect_ratio
    • The aspect ratio of the video is invalid. Please upload a video with an aspect ratio between 1:1 and {maximum_aspect_ratio}. Current resolution is {current_resolution}.
  • video_duration_too_short
    • The video is too short. Please use a video with a duration of 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 a duration between {minimum_duration} and {maximum_duration} seconds. Current duration is {current_duration} seconds.
  • 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_size}.
  • audio_file_broken
    • Unable to process audio file. Please check if the file is valid and try again.
  • audio_duration_too_short
    • The audio is too short. Please use an audio file with a duration of at least {minimum_duration} seconds. Current duration is {current_duration} seconds.
  • audio_duration_too_long
    • The audio is too long. Please use an audio file with a duration between {minimum_duration} and {maximum_duration} seconds. Current duration is {current_duration} seconds.
  • audio_filesize_too_large
    • The audio is too large. Please use an audio file with a size less than {maximum_size}. The current size is {current_size}.
  • audio_format_unsupported
    • The audio format {format} is not supported. Please use one of the following formats: {supported_formats}.
  • asset_transcription_not_found
    • Transcription for asset {asset_id} does not exist.
  • resource_not_exists
    • The requested asset with the identifier {asset_id} does not exist.

For a list of general errors that apply to all endpoints, see the Error codes page.

Retrieve the transcription of an asset

Description: This method retrieves the transcription of a video or audio asset. An asset that has a transcription returns 200 with the current transcription status. The endpoint returns 404 when the asset cannot be found or has no transcription.

The platform generates transcriptions asynchronously. Poll this endpoint to monitor the transcription status.

When the status is ready, the response contains the segmentations you requested that the transcription supports. A transcription does not always support every segmentation, so read the segmentations the response returns rather than assuming every requested one is present.

Function signature and example:

1def retrieve_transcription(
2 self,
3 asset_id: str,
4 *,
5 include: typing.Optional[
6 typing.Union[
7 AssetsRetrieveTranscriptionRequestIncludeItem,
8 typing.Sequence[AssetsRetrieveTranscriptionRequestIncludeItem],
9 ]
10 ] = None,
11 request_options: typing.Optional[RequestOptions] = None,
12) -> AssetTranscriptionResponse

Parameters

NameTypeRequiredDescription
asset_idstrYesThe unique identifier of the asset.
includeOptional[Union[AssetsRetrieveTranscriptionRequestIncludeItem, Sequence[AssetsRetrieveTranscriptionRequestIncludeItem]]]NoSpecifies the transcriptions to return. Each value segments the transcription differently: words returns one entry for each word, sentences returns one entry for each chunk the speech recognition model detects as a sentence, and utterances returns one entry for each speaker turn. Default: words.
request_optionsRequestOptionsNoRequest-specific configuration.

Return value

Returns an AssetTranscriptionResponse object containing the transcription status and the transcriptions you requested.

The AssetTranscriptionResponse class contains the following properties:

NameTypeDescription
statusAssetTranscriptionStatusThe current status of the transcription. Values: pending (the platform has not started the transcription), processing (the platform is transcribing the asset), ready (the transcription is available), failed (the platform could not transcribe the asset).
wordsOptional[List[AssetTranscriptionEntry]]One entry for each word. Present when the status is ready, the include parameter lists words, and the transcription supports word-level segmentation.
sentencesOptional[List[AssetTranscriptionEntry]]One entry for each chunk the speech recognition model detects as a sentence. Present when the status is ready, the include parameter lists sentences, and the transcription supports sentence-level segmentation.
utterancesOptional[List[AssetTranscriptionUtterance]]One entry for each speaker turn. Present when the status is ready, the include parameter lists utterances, and the transcription supports speaker-turn segmentation.
errorOptional[AssetTranscriptionError]Details about the failure. Present when the status is failed.

The AssetTranscriptionEntry class contains the following properties:

NameTypeDescription
startfloatThe start timestamp in seconds.
endfloatThe end timestamp in seconds.
valuestrThe recognized text in this time range.

The AssetTranscriptionUtterance class contains the following properties:

NameTypeDescription
startfloatThe start timestamp in seconds.
endfloatThe end timestamp in seconds.
valuestrThe recognized text in this speaker turn.
speakerOptional[str]The speaker identifier when available.

The AssetTranscriptionError class contains the following properties:

NameTypeDescription
messagestrA human-readable message describing the failure. The exact text is not part of the contract. Do not parse it.

API Reference

Retrieve the transcription of an asset