VideoTagApi

class VideoTagApi[source]

Bases: supervisely.api.entity_annotation.tag_api.TagApi

VideoTag for a single video. VideoTagApi object is immutable.

Methods

add

Add VideoTag to video.

add_tag

Add VideoTag to video.

add_to_objects

Add Tags to existing Annotation Figures.

append_to_entity

Add tags to entity in project with given ID.

append_to_objects

Add Tags to Annotation Objects for a specific entity (image etc.).

append_to_objects_json

Add Tags to Annotation Objects for specific entity (image etc.).

download_list

Download VideoTagCollection with all tags of the video.

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 tags for a given project 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

get_list_idx_page_async

Get the list of items for a given page number.

get_list_page_generator_async

Yields list of images in dataset asynchronously page by page.

get_name_to_id_map

Get dictionary with mapping tag name to tag ID for a given project ID.

info_sequence

NamedTuple TagInfo information about Tag.

info_tuple_name

Get string name of NamedTuple for class.

remove

Remove tag from video.

remove_from_video

Remove tag from video.

update_frame_range

Update VideoTag frame range in video.

update_value

Update VideoTag value.

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.

InfoType

alias of supervisely.api.module_api.TagInfo

add(video_id, tag, update_id_inplace=True)[source]

Add VideoTag to video.

Parameters
video_id : int

Video ID in Supervidely.

tag : VideoTag

VideoTag j,ject.

update_id_inplace

Specify if

Returns

VideoTag ID in Supervisely

Return type

int

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 = 19402023

tag_meta = sly.TagMeta('Animal', sly.TagValueType.NONE)
# Tag has to exists in project.
tag = VideoTag(tag_meta)

api.video.tag.add(video_id=video_id, tag=tag)
add_tag(project_meta_tag_id, video_id, value=None, frame_range=None)[source]

Add VideoTag to video.

Parameters
project_meta_tag_id : int

TagMeta ID in Supervisely.

video_id : int

Video ID in Supervidely.

value : str or int

New VideoTag value.

frame_range : List[int]

New VideoTag frame range.

Returns

None

Return type

dict

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()

new_frame_range = [5, 10]
api.video.tag.add_tag(project_meta_tag_id, video_id, 'tag_value', frame_range)
add_to_objects(project_id, tags_list, batch_size=100, log_progress=False, progress=None)

Add Tags to existing Annotation Figures. All figures must belong to entities of the same project. Applies only to images project.

Parameters
project_id : int

Project ID in Supervisely.

tags_list : List[dict]

List of tag object infos as dictionaries.

batch_size : int

Number of tags to add in one request.

log_progress : bool

If True, will display a progress bar.

progress : Optional[tqdm_sly]

Progress bar object to display progress.

Returns

List of tags infos as dictionaries.

Return type

List[dict]

Usage example: .. code-block:: python

import supervisely as sly

api = sly.Api(server_address, token)

tag_list = [
{

“tagId”: 25926, “figureId”: 652959, “value”: None # value is optional for tag with type ‘None’

}, {

“tagId”: 25927, “figureId”: 652959, “value”: “v1”

}, {

“tagId”: 25927, “figureId”: 652958, “value”: “v2”

}

] response = api.image.tag.add_to_figures(12345, tag_list)

print(response) # Output: # [ # { # “id”: 80421101, # “tagId”: 25926, # “figureId”: 652959, # “value”: None # }, # { # “id”: 80421102, # “tagId”: 25927, # “figureId”: 652959, # “value”: “v1” # }, # { # “id”: 80421103, # “tagId”: 25927, # “figureId”: 652958, # “value”: “v2” # } # ]

append_to_entity(entity_id, project_id, tags, key_id_map=None)

Add tags to entity in project with given ID.

Parameters
entity_id : int

ID of the entity in Supervisely to add a tag to

project_id : int

Project ID in Supervisely.

tags : KeyIndexedCollection

Collection of tags

key_id_map : KeyIdMap, optional

KeyIdMap object.

Returns

List of tags IDs

Return type

list

append_to_objects(entity_id, project_id, objects, key_id_map)

Add Tags to Annotation Objects for a specific entity (image etc.).

Parameters
entity_id : int

ID of the entity in Supervisely to add a tag to its objects

project_id : int

Project ID in Supervisely. Uses to get tag name to tag ID mapping.

objects : KeyIndexedCollection

Collection of Annotation Objects.

key_id_map : KeyIdMap

KeyIdMap object.

Returns

List of tags IDs

Return type

list

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()

img_id = 19373170
img_info = api.
append_to_objects_json(entity_id, tags_json)

Add Tags to Annotation Objects for specific entity (image etc.).

Parameters
entity_id : int

ID of the entity in Supervisely to add a tag to its objects

tags_json : dict

Collection of tags in JSON format

Returns

List of tags IDs

Return type

list

download_list(id, project_meta)[source]

Download VideoTagCollection with all tags of the video.

Parameters
id : int

Video ID in Supervidely.

project_meta_tag_id : int

TagMeta ID in Supervisely.

Returns

All tags of the video in VideoTagCollection format

Return type

VideoTagCollection

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 = 19402023
project_id = 17209

meta_json = api.project.get_meta(project_id)
project_meta = sly.ProjectMeta.from_json(meta_json)

tags_collection = api.video.tag.download_list(video_id, project_meta)
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(project_id, filters=None)

Get list of tags for a given project ID.

Parameters
project_id : int

Dataset ID in Supervisely.

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

List of parameters to sort output tags. See: https://api.docs.supervisely.com/#tag/Advanced/paths/~1tags.list/get

Returns

List of the tags from the project with given id.

Return type

list

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

async get_list_idx_page_async(method, data)

Get the list of items for a given page number. Page number is specified in the data dictionary.

Parameters
method : str

Method to call for listing items.

data : dict

Data to pass to the API method.

Returns

List of items.

Return type

Tuple[int, List[NamedTuple]]

async get_list_page_generator_async(method, data, pages_count=None, semaphore=None)

Yields list of images in dataset asynchronously page by page.

Parameters
method : str

Method to call for listing items.

data : dict

Data to pass to the API method.

pages_count : int, optional

Preferred number of pages to retrieve if used with a per_page limit. Will be automatically adjusted if the pagesCount differs from the requested number.

semaphore : asyncio.Semaphore, optional

Semaphore for limiting the number of simultaneous requests.

kwargs

Additional arguments.

Returns

List of images in dataset.

Return type

AsyncGenerator[List[ImageInfo]]

Usage example
import supervisely as sly
import asyncio

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

method = 'images.list'
data = {
    'datasetId': 123456
}

loop = sly.utils.get_or_create_event_loop()
images = loop.run_until_complete(api.image.get_list_generator_async(method, data))
get_name_to_id_map(project_id)

Get dictionary with mapping tag name to tag ID for a given project ID.

Parameters
project_id : int

Dataset ID in Supervisely.

Returns

Dictionary with mapping tag name to tag id for a given project ID.

Return type

dict

static info_sequence()

NamedTuple TagInfo information about Tag.

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()

info_sequence = api.video.tag.info_sequence()
static info_tuple_name()

Get string name of NamedTuple for class.

Returns

NamedTuple name.

Return type

str

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()

tuple_name = api.video.tag.info_tuple_name()
print(tuple_name) # TagInfo
remove(tag)[source]

Remove tag from video.

:param VideoTag in Supervisely. :type tag: VideoTag :return: None :rtype: 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()

api.video.tag.remove(video_tag)
remove_from_video(tag_id)[source]

Remove tag from video.

Parameters
tag_id : int

VideoTag ID in Supervisely.

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()

api.video.tag.remove_from_video(video_tag_id)
update_frame_range(tag_id, frame_range)[source]

Update VideoTag frame range in video.

Parameters
tag_id : int

VideoTag ID in Supervisely.

frame_range : List[int]

New VideoTag frame range.

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()

new_frame_range = [5, 10]
api.video.tag.update_frame_range(video_tag_id, new_frame_range)
update_value(tag_id, tag_value)[source]

Update VideoTag value.

Parameters
tag_id : int

VideoTag ID in Supervisely.

tag_value : str or int

New VideoTag value.

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()

api.video.tag.update_value(video_tag_id, 'new_tag_value')