ClipAnnotation
This represents a comment or a log about part of the media. In addition to a temporal range, it can also contain spatial indications to indicate it concerns a position of the video frame.
Details of a ClipAnnotation
The image below contains an example of a ClipAnnotation
, in this case with funnel ReviewComment
. We will discuss the fields important for it below.

Description, tags and mentions
Like any annotation, the ClipAnnotation
has a plain-text description
, and also a tags
field. In the Limecraft Flow UI, one can fill in the description and use the # or @ sign to include tags and mentions.
When saving the ClipAnnotation
, this will be parsed into three different fields: description
, tags
and mentionIds
.
field | description |
---|---|
description |
Plain text description, containing markers for mentions and tags. Example:
![]() |
tags |
An array with strings representing the tags.
|
mentionIds |
An array with user ids representing the users who are mentioned.
|
It might be a bit confusing that the some of the information seems to be duplicated between the description
, tags
and mentionIds
fields. Adding the tags and mentions inside the description should be seen as a UI mechanism to make it easy to add mentions and tags, but once they are saved, they are explicitly added to their own fields. The platform’s API backend does parse the description, but does not automatically fill in the mentionIds
and tags
fields based on it. This is a client responsibility.
Reference a part of the video frame via spatial, uiLocation
Some ClipAnnotations can have spatial information, linking them to a particular point in the video frame. This is done using the spatial
and uiLocation
fields.
field | description |
---|---|
spatial |
A string representing the position of the region the comment is about.
Based on http://www.w3.org/TR/media-frags/#naming-space. At the moment, the UI will only recognize the particular format |
uiLocation |
A string representing the position of the user interface element with the comment. I.e. the "box" with the comment, as opposed to the "dot" it is talking about.
See |
Comment Threads using relatedToId
It is possible to give a 'reply' on another comment:
Internally, this is done using the relatedToId
field. It should be set to the id
of the original comment that this is a reply to. At the moment, the Limecraft Flow UI supports only one deeper level of comment replies.
In the image above, if the "test @karel500" comment has id
1200, the two comments below it should have its relatedToId
set to 1200
.
id | relatedToId | description |
---|---|---|
1200 |
the comment with "test @karel500" |
|
1400 |
1200 |
the comment with "my reply" |
1401 |
1200 |
the comment with "yet another reply" |
Include transcript quote of matching time range
It is possible to refer to part of the transcript by setting the includesFrom
field to ["transcript:en"]
(to include from the English transcript). In the Limecraft Flow UI this is possible on logger subclips, and it looks like this:
Including from the transcript will also add the matching transcription text to the annotation in the SOLR search index.
Restricted Visibility
The visibility of a ClipAnnotation
can be adjusted so that it is only visible for workspace members with the VIEW_COMMENT_INTERNAL
permission. The UI only exposes this functionality when the funnel is ReviewComment
.
The activeSecurityClasses of the Production should contain "VIEW_COMMENT_INTERNAL" for this to work. The feature is not enabled otherwise.
|

The securityClasses
field defines what extra permissions are required to view this comment. It is either empty (unset or empty array) or it is the ['VIEW_COMMENT_INTERNAL']
array.
In addition, the markForUnrestricted
boolean field can be set to true
to mark a comment with restricted visibility as a candidate for becoming available to the entire team. There is no backend functionality coupled to this, making the comment visible is a manual action.
securityClasses | markForUnrestricted | UI shows as |
---|---|---|
|
anything |
A plain comment, visible to entire team |
|
|
A restricted comment |
|
|
A restricted comment, which is scheduled to become visible to the entire team. |
Funnels
Today, there are two funnels in use for the ClipAnnotation
objectType:
-
The
ClipAnnotation
funnel is used for subclips in the Logger application of the Limecraft Flow UI. -
The
ReviewComment
funnel is used for comments in the Review application of the Limecraft Flow UI. -
The
Chapter
funnel is used for chapters in the Summary application of the Limecraft Flow UI.
In the UI, not all features discussed on this page are available on both.
Feature | ClipAnnotation funnel | ReviewComment funnel |
---|---|---|
tags |
✓ |
✓ |
transcription quote |
✓ |
|
mentions |
✓ |
|
threads |
✓ |
|
refer to part of video frame (spatial and uiLocation) |
✓ |
Property Reference
Field Name | Required | Type | Description | Format |
---|---|---|---|---|
annotationProductionId |
✘ |
Long |
int64 |
|
clipMetadata |
✘ |
ClipMetadata |
||
created |
✘ |
Date |
The time when this resource was created |
date-time |
createdBy |
✘ |
String |
The request or process that created this resource |
|
createdByShareId |
✘ |
Long |
int64 |
|
createdBySharedUserId |
✘ |
Long |
int64 |
|
creatorId |
✘ |
Long |
The id of the user who created this resource |
int64 |
crossProduction |
✘ |
Boolean |
||
customFields |
✘ |
CustomFields |
||
deleted |
✘ |
Date |
date-time |
|
description |
✘ |
String |
Textual contents of the Annotation |
|
end |
✘ |
Long |
The frame range described by the annotation runs up to end, but not including it. Should be less than or equal to the amount of frames the MediaObject has. |
int64 |
funnel |
✘ |
String |
Describes how the Annotation should be interpreted by the client application. Can be thought of as a subtype. |
|
id |
✔ |
Long |
The id of this resource |
int64 |
ignoreTimecode |
✘ |
Boolean |
||
includeTranslatedTo |
✘ |
Boolean |
||
includesFrom |
✘ |
Set of string |
||
keyframeFrames |
✘ |
Long |
int64 |
|
label |
✘ |
String |
||
language |
✘ |
String |
||
lastUpdated |
✘ |
Date |
The time when this resource was last updated |
date-time |
markForUnrestricted |
✘ |
Boolean |
||
mediaObject |
✘ |
MediaObject |
||
mediaObjectId |
✘ |
Long |
int64 |
|
modifiedBy |
✔ |
String |
The request or process responsible for the last update of this resource |
|
name |
✘ |
String |
||
objectType |
✘ |
String |
The data model type or class name of this resource |
|
origin |
✘ |
String |
||
productionId |
✘ |
Long |
int64 |
|
rating |
✘ |
Double |
double |
|
relatedToId |
✘ |
Long |
int64 |
|
securityClasses |
✘ |
Set of string |
Enum: |
|
source |
✘ |
String |
||
spatial |
✘ |
String |
Link the Annotation to a specific part of the video or image frame. A Media Fragments Spatial Dimension description string is expected. |
|
start |
✘ |
Long |
First frame of the Annotation. 0 is the first frame of the clip. The start frame is included in the frame range the annotation describes. |
int64 |
systemFields |
✘ |
CustomFields |
||
tags |
✘ |
Set of string |
||
topics |
✘ |
Set of string |
||
translatedFromId |
✘ |
Long |
int64 |
|
translatedToIds |
✘ |
Set of long |
int64 |
|
uiLocation |
✘ |
String |
||
version |
✔ |
Long |
The version of this resource, used for Optimistic Locking |
int64 |