Skip to main content
Skip table of contents

Content paths [VC 21.3.1 GEN]

Content paths are accepted by certain resources as a way of controlling the data that is returned for one or more entity.

Paths

A path consists of a list of keys that correspond to an field in the response. For example:

PYTHON
shape.containerComponent.format
shape.containerComponent.duration
shape.containerComponent.file.path
shape.containerComponent.file.size

Paths can also be written using a short-hand format:

PYTHON
shape.containerComponent.[format,duration]
shape.containerComponent.file.[path,size]

A path that selects from an element that represents a sequence will select on all elements in the sequence. This path selects the codec from all audio components for example:

PYTHON
shape.audioComponent.codec

Keys can contains a qualifier that further restricts the response:

PYTHON
shape[tag=original].containerComponent.[format,duration]
shape[tag=original].containerComponent.file.[path,size]

The syntax is:

path       ::= key ( "." key )*
key        ::= identifier ("[" qualifier "]")*
qualifier  ::= identifier "=" identifier
identifier ::= letter { letter | number }*

Example

Fetch all metadata fields and groups:

PYTHON
p=metadata.timespan.[field,group]

Fetch all metadata groups:

PYTHON
p=metadata.timespan.group

Fetch only “second level” groups:

PYTHON
p=metadata.timespan.group.group

Fetch the contents of a group called “test_group”:

PYTHON
p=metadata.timespan.group[name=test_group]

Fetch child metadata fields in a group called “test_group”:

PYTHON
p=metadata.timespan.group[name=test_group].field

Fetch only the name and value of metadata fields (excluding properties like uuid, timestamp, etc.):

PYTHON
p=metadata.timespan.field.[name,value].value

Aliases

Aliases can be used to shorten long path strings and to refer to multiple paths at once. Aliases can have arguments, making them similar to macros in other programming languages.

alias ::= name [ "(" arg ("," arg)* ")" ] "=" path ("," path)*
name  ::= letter { letter | number }*
arg   ::= letter { letter | number }*

As with fields and configuration properties, prefer to prefix alias names with a unique application prefix, to avoid possible conflicts in the future.

When an alias is evaluated, any arguments in the path, expressed as $arg, will be replaced by the argument value. The resulting path string must be a valid path. For example, an alias that provides information about a shape:

PYTHON
detail(tag)=shape[tag=$tag].containerComponent.format,shape[tag=$tag].videoComponent.[codec,duration]

Configure aliases using the path alias configuration resource.

NONE
PUT /configuration/path-alias
Content-Type: application/xml

<PathAliasConfigurationDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <alias>v(name)=metadata.timespan[start=-INF][end=+INF].field[name=$name].value.value</alias>
  <alias>detail(tag)=shape[tag=$tag].containerComponent.format,shape[tag=$tag].videoComponent.[codec,duration]</alias>
</PathAliasConfigurationDocument>

Default aliases

v(name)

metadata.timespan[start=-INF][end=+INF].field[name=$name].value.value

Transient metadata will not be returned using content paths, unless explicitly specified in the path. For example, metadata or metadata.timespan give no transident field. And pathes like v(transient_field) should be used for transient fields to be returned.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.