Bulky metadata

Bulky metadata can be used to store large amounts of timed metadata. The metadata is arranged in a key-value fashion, where the key is the quintuple (field, start, end, stream, channel).

The metadata is not indexed, but is typically used as a temporary container for metadata that is to be processed later, for example using auto-projection rules.

Managing bulky metadata

Both items and shapes can hold bulky metadata.

Insert values in bulk

PUT /item/(item-id)/metadata/bulky/
PUT /item/(item-id)/shape/(shape-id)/metadata/bulky/

Inserts all key-value pairs from a given document.

Accepts:
Role:

_metadata_write

Example

PUT /item/VX-250/metadata/bulky
Content-Type: application/xml

<BulkyMetadataDocument xmlns="http://xml.vidispine.com/schema/vidispine">
   <field start="3" end="5">
      <key>mykey</key>
      <value>This is the value of mykey for the first interval.</value>
   </field>
   <field start="5" end="9">
      <key>mykey</key>
      <value>This is the value of mykey for the second interval.</value>
   </field>
</BulkyMetadataDocument>

Retrieve all keys used in the bulky metadata

GET /item/(item-id)/metadata/bulky/
GET /item/(item-id)/shape/(shape-id)/metadata/bulky/

Retrieves a list of all keys in the bulky metadata.

Produces:
  • application/xml, application/jsonURIListDocument
  • text/plain – CRLF-delimited list of keys
Role:

_metadata_read

Delete all keys used in the bulky metadata

DELETE /item/(item-id)/metadata/bulky/
DELETE /item/(item-id)/shape/(shape-id)/metadata/bulky/

Removes all the keys in the bulky metadata.

Role:_metadata_write

Read values

GET /item/(item-id)/metadata/bulky/(key)
GET /item/(item-id)/shape/(shape-id)/metadata/bulky/(key)

Retrieves all values of a certain key over a specified interval. All values for that key can be retrieved by specifying start as “-INF” and end as “+INF”.

Query Parameters:
 
  • start (string) – A time code that defines the start of the interval.
  • end (string) – A time code that defines the end of the interval.
Produces:
Role:

_metadata_read

Example

GET /item/VX-123/metadata/bulky/mykey?start=-INF&end=+INF
<BulkyMetadataDocument id="VX-123" xmlns="http://xml.vidispine.com/schema/vidispine">
   <field start="3" end="5">
      <key>mykey</key>
      <value>This is the value of mykey for the first interval.</value>
   </field>
   <field start="5" end="9">
      <key>mykey</key>
      <value>This is the value of mykey for the second interval.</value>
   </field>
</BulkyMetadataDocument>

Insert values

PUT /item/(item-id)/metadata/bulky/(key)
PUT /item/(item-id)/shape/(shape-id)/metadata/bulky/(key)

Inserts a value at the specified interval for the given key. If the key already has a value at that specific interval then that value will be overwritten.

Query Parameters:
 
  • start (string) – A time code that defines the start of the interval.
  • end (string) – A time code that defines the end of the interval.
  • stream (integer) – The stream index.
  • channel (integer) – The audio channel index.
  • itemTrack (string) – The track in the item.
Accepts:
  • text/plain – The value to set.
Role:

_metadata_write

Example

PUT /item/VX-123/metadata/bulky/mykey?start=3&end=5
Content-Type: text/plain

This is the value of mykey for the first interval.
PUT /item/VX-123/metadata/bulky/mykey?start=5&end=9
Content-Type: text/plain

This is the value of mykey for the second interval.

Remove values

DELETE /item/(item-id)/metadata/bulky/(key)
DELETE /item/(item-id)/shape/(shape-id)/metadata/bulky/(key)

Removes all the values for a certain key over the specified interval.

Query Parameters:
 
  • start (string) – A time code that defines the start of the interval.
  • end (string) – A time code that defines the end of the interval.
Role:

_metadata_write