VideoFrameAPI

class VideoFrameAPI[source]

Bases: supervisely.api.module_api.ModuleApi

Frame for a single video. VideoFrameAPI object is immutable.

Methods

download_bytes

Download frames with given indexes from Dataset in Binary format.

download_np

Download Image for frame with given index from given video ID in numpy format (RGB).

download_nps

Download frames with given indexes from given video ID in numpy format(RGB).

download_nps_generator

rtype

Generator[Tuple[int, ndarray], None, None]

download_path

Downloads frame on the given path for frame with given index from given Video ID.

download_paths

Downloads frames to given paths for frames with given indexes from given Video ID.

exists

Checks if an entity with the given parent_id and name exists

get_free_name

Generates a free name for an entity with the given parent_id and name.

get_info_by_id

Get information about an entity by its ID from the Supervisely server.

get_info_by_name

Get information about an entity by its name from the Supervisely server.

get_list

Get list of entities in parent entity with given parent ID.

get_list_all_pages

Get list of all or limited quantity entities from the Supervisely server.

get_list_all_pages_generator

This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved

info_sequence

Get list of all class field names.

info_tuple_name

Get string name of NamedTuple.

Attributes

MAX_WAIT_ATTEMPTS

Maximum number of attempts that will be made to wait for a certain condition to be met.

WAIT_ATTEMPT_TIMEOUT_SEC

Number of seconds for intervals between attempts.

download_bytes(video_id, frame_indexes, progress_cb=None)[source]

Download frames with given indexes from Dataset in Binary format.

Parameters
video_id : int

Video ID in Supervisely.

frame_indexes : List[int]

List of video frames indexes in Supervisely.

progress_cb : tqdm or callable, optional

Function for tracking download progress.

Returns

List of Images in binary format

Return type

List[bytes]

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

video_id = 213542
frame_indexes = [1,2,3,4,5,10,11,12,13,14,15]
frames_bytes = api.video.frame.download_bytes(video_id=video_id, frame_indexes=frame_indexes)
print(frames_bytes)
# Output: [b'ÿØÿàJFIF\...]
download_np(video_id, frame_index)[source]

Download Image for frame with given index from given video ID in numpy format (RGB).

Parameters
video_id : int

Video ID in Supervisely.

frame_index : int

Index of frame to download.

Returns

Image in RGB numpy matrix format

Return type

np.ndarray

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

video_id = 198703211
frame_idx = 5
image_np = api.video.frame.download_np(video_id, frame_idx)
download_nps(video_id, frame_indexes, progress_cb=None, keep_alpha=False)[source]

Download frames with given indexes from given video ID in numpy format(RGB).

Parameters
video_id : int

Video ID in Supervisely.

frame_indexes : List[int]

Indexes of frames to download.

progress_cb : tqdm or callable, optional

Function for tracking download progress.

Returns

List of Images in RGB numpy matrix format

Return type

List[np.ndarray]

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

video_id = 198703211
frame_indexes = [1,2,3,4,5,10,11,12,13,14,15]
images_np = api.video.frame.download_nps(video_id, frame_indexes)
download_path(video_id, frame_index, path)[source]

Downloads frame on the given path for frame with given index from given Video ID.

Parameters
video_id : int

Video ID in Supervisely.

frame_index : int

Index of frame to download.

path : str

Local save path for Image.

Returns

None

Return type

NoneType

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

video_id = 198703211
frame_idx = 5
save_path = '/home/admin/Downloads/frames/result.png'
api.video.frame.download_path(video_id, frame_idx, save_path)
download_paths(video_id, frame_indexes, paths, progress_cb=None)[source]

Downloads frames to given paths for frames with given indexes from given Video ID.

Parameters
video_id : int

Video ID in Supervisely.

frame_indexes : List[int]

Indexes of frames to download.

paths : List[str]

Local save paths for frames.

progress_cb : tqdm or callable, optional

Function for tracking download progress.

Returns

None

Return type

NoneType

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

video_id = 198703211
frame_indexes = [1,2,3,4,5,10,11,12,13,14,15]
save_paths = [f"/home/admin/projects/video_project/frames/{idx}.png" for idx in frame_indexes]
api.video.frame.download_paths(video_id, frame_indexes, save_paths)
exists(parent_id, name)

Checks if an entity with the given parent_id and name exists

Parameters
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns

Returns True if entity exists, and False if not

Return type

bool

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


name = "IMG_0315.jpeg"
dataset_id = 55832
exists = api.image.exists(dataset_id, name)
print(exists) # True
get_free_name(parent_id, name)

Generates a free name for an entity with the given parent_id and name. Adds an increasing suffix to original name until a unique name is found.

Parameters
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns

Returns free name.

Return type

str

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


name = "IMG_0315.jpeg"
dataset_id = 55832
free_name = api.image.get_free_name(dataset_id, name)
print(free_name) # IMG_0315_001.jpeg
get_info_by_id(id)

Get information about an entity by its ID from the Supervisely server.

Parameters
id : int

ID of the entity.

get_info_by_name(parent_id, name, fields=[])

Get information about an entity by its name from the Supervisely server.

Parameters
parent_id : int

ID of the parent entity.

name : str

Name of the entity for which the information is being retrieved.

fields : List[str]

The list of api fields which will be returned with the response.

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


dataset_id = 55832
name = "IMG_0315.jpeg"
info = api.image.get_info_by_name(dataset_id, name)
print(info)
# Output: ImageInfo(id=19369643, name='IMG_0315.jpeg', ...)
get_list(parent_id, filters=None)

Get list of entities in parent entity with given parent ID.

Parameters
parent_id : int

parent ID in Supervisely.

filters : List[Dict[str, str]], optional

List of parameters to sort output entities.

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


dataset_id = 55832
images = api.image.get_list(dataset_id)
print(images)
# Output: [
    ImageInfo(id=19369642, ...)
    ImageInfo(id=19369643, ...)
    ImageInfo(id=19369644, ...)
]
get_list_all_pages(method, data, progress_cb=None, convert_json_info_cb=None, limit=None, return_first_response=False)

Get list of all or limited quantity entities from the Supervisely server.

Parameters
method : str

Request method name

data : dict

Dictionary with request body info

progress_cb : Progress, optional

Function for tracking download progress.

convert_json_info_cb : Callable, optional

Function for convert json info

limit : int, optional

Number of entity to retrieve

return_first_response : bool, optional

Specify if return first response

get_list_all_pages_generator(method, data, progress_cb=None, convert_json_info_cb=None, limit=None, return_first_response=False)

This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved

Parameters
method : str

Request method name

data : dict

Dictionary with request body info

progress_cb : Progress, optional

Function for tracking download progress.

convert_json_info_cb : Callable, optional

Function for convert json info

limit : int, optional

Number of entity to retrieve

return_first_response : bool, optional

Specify if return first response

static info_sequence()

Get list of all class field names.

static info_tuple_name()

Get string name of NamedTuple.