Item sequences

An item can hold a number of sequences, and is then called a sequence item. All sequences will be considered equivalent by Vidispine, that is, that they represent the same logical sequence.

Sequences can also be imported and exported to and from common NLE formats.

The non-timed metadata of a sequence item will contain the following fields:

Field Name

Value

__sequence_size

The number of sequences that exist for an item.

__sequence

The format of a sequence that exist for an item.

Projects and project versions

A project is a special type of collection that contains a number of project versions. A project version is a collection that contains the items and sequences that together represent a specific version. As both project and project versions are ordinary collections it means that all existing collection operations can be used, for example editing project metadata.

Projects can also be imported and exported to and from common NLE formats.

Projects and project versions are read-only and cannot be altered by manually adding or removing child items or collections.

For a project version it is possible to store the original document representing the project, the Final Cut Pro XML for example, as well as any additional representations, here called Project Version Definitions. Each representation is stored as binary data, and is identified by a format identifier (e.g. finalcut.)

Any string can be used as the format identifier, except the following which are reserved by Vidispine, but may be used as long as the content matches.

Identifier

Content

Description

finalcut

application/final-cut-pro

Final Cut Pro 7 XML

finalcut-x

application/final-cut-pro-x

Final Cut Pro X XML

aaf

application/aaf

AAF

fabric

application/fabric

Fabric CEMS

vidispine

application/x-vidispine

SequenceType

Example

For a project named “Unnamed project”:

<timespan start="-INF" end="+INF">
  <field>
    <name>__type</name>
    <value>project</value>
  </field>
  <field>
    <name>__project_name</name>
    <value>Unnamed Projekt</value>
  </field>
  ...
</timespan>
HTML/XML

For a project version with a single Final Cut Pro representation:

<timespan start="-INF" end="+INF">
  <field>
    <name>__type</name>
    <value>projectVersion</value>
  </field>
  <field>
    <name>__project_version</name>
    <value>finalcut</value>
  </field>
  ...
</timespan>
HTML/XML

Metadata

Projects and project version collections contains additional (non-timed) metadata that may be useful when searching for collection.

Field Name

Value

__type

project for project collections.

projectVersion for project version collections.

__project_name

The name of the project.

__project_version

The format of the definitions that have been stored for a project version.

Project and sequence import and export

This page describes how to import and export projects and sequences from NLEs such as Final Cut Pro and Avid Media Composer.

Inspecting a project file

Before a project or sequence can be imported, the project file has to be inspected in order to find out which clips already exist in Vidispine as items, and which must first be imported.

The input should be an essence mappings document, which is also used for project and sequence import. It is required so that Vidispine can identify the items and files referenced by the input project file. The document can specify:

  • The SHA-1 hash of a file. The response will then contain all items and shapes that reference that specific file.

  • The item corresponding to a specific asset. Can be used after a previously unknown asset has been imported and the correct item is known. If the item has multiple shapes then the shape id must be specified as well.

  • If a storage has been locally mounted on the client, then a storage mapping containing the id of the storage and the local path can be given. This will only be used if the input file references files by path.

Example

POST /collection/project/inspect?uri=file:///home/maria/sequence.xml&amp;type=finalcut
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EssenceMappingDocument xmlns="http://xml.vidispine.com/schema/vidispine">
</EssenceMappingDocument>
NONE
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ProjectFileDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <location>file:///home/maria/sequence.xml</location>
  <asset>
    <id>urn:uuid:8CED8AFE-1A67-4632-AB57-D5F5B1E0BC49</id>
    <name>Sequence 1</name>
    <type>sequence</type>
    <status>unknown</status>
  </asset>
  <asset>
    <id>urn:uuid:FCAD0878-7129-43DA-A8A0-696590EFE4DA</id>
    <name>Sample Clip B</name>
    <type>clip</type>
    <status>unknown</status>
    <file>
      <path>file://localhost/Users/maria/Sample%20Clip%20B.mov</path>
    </file>
  </asset>
  <asset>
    <id>urn:uuid:76BE320F-48E0-47A5-A076-227158C50024</id>
    <name>Clip A</name>
    <type>clip</type>
    <status>unknown</status>
    <file>
      <path>file://localhost/Users/maria/Movies/Vidispine/VX-1.mov</path>
    </file>
  </asset>
</ProjectFileDocument>
HTML/XML

With the SHA-1 hash provided for all of the files:

POST /collection/project/inspect?uri=file:///home/maria/sequence.xml&amp;type=finalcut
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EssenceMappingDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <file path="file://localhost/Users/maria/Movies/Vidispine/VX-1.mov" hash="7b8d6ffe1ea468800578d6b7d4a09b012c461569"/>
  <file path="file://localhost/Users/maria/Sample%20Clip%20B.mov" hash="c7cfc97a9cf6634ad94766c0c4b0789cd86bcc33"/>
</EssenceMappingDocument>
NONE
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ProjectFileDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <location>file:///home/maria/sequence.xml</location>
  <asset>
    <id>urn:uuid:8CED8AFE-1A67-4632-AB57-D5F5B1E0BC49</id>
    <name>Sequence 1</name>
    <type>sequence</type>
    <status>unknown</status>
  </asset>
  <asset>
    <id>urn:uuid:FCAD0878-7129-43DA-A8A0-696590EFE4DA</id>
    <name>Sample Clip B</name>
    <type>clip</type>
    <status>unknown</status>
    <file>
      <path>file://localhost/Users/maria/Sample%20Clip%20B.mov</path>
    </file>
  </asset>
  <asset>
    <id>urn:uuid:76BE320F-48E0-47A5-A076-227158C50024</id>
    <name>Clip A</name>
    <type>clip</type>
    <item id="VX-1" match="file" permission="OWNER"/>
    <file>
      <path>file://localhost/Users/maria/Movies/Vidispine/VX-1.mov</path>
      <hash>7b8d6ffe1ea468800578d6b7d4a09b012c461569</hash>
      <file>
        <id>VX-1</id>
        <path>VX-1.mov</path>
        <uri>file:///mnt/storage/Vidispine/VX-1.mov</uri>
        <state>CLOSED</state>
        <size>30346173</size>
        <timestamp>2011-10-13T07:41:48.053+02:00</timestamp>
        <refreshFlag>727</refreshFlag>
        <storage>VX-1</storage>
        <item>
          <id>VX-1</id>
          <shape>
            <id>VX-1</id>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
          </shape>
        </item>
      </file>
    </file>
  </asset>
</ProjectFileDocument>
HTML/XML

After the new asset has been imported into Vidispine:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ProjectFileDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <location>file:///home/maria/sequence.xml</location>
  <asset>
    <id>urn:uuid:8CED8AFE-1A67-4632-AB57-D5F5B1E0BC49</id>
    <name>Sequence 1</name>
    <type>sequence</type>
    <status>unknown</status>
  </asset>
  <asset>
    <id>urn:uuid:FCAD0878-7129-43DA-A8A0-696590EFE4DA</id>
    <name>Sample Clip B</name>
    <type>clip</type>
    <item id="VX-2" match="file" permission="OWNER"/>
    <file>
      <path>file://localhost/Users/maria/Sample%20Clip%20B.mov</path>
      <hash>c7cfc97a9cf6634ad94766c0c4b0789cd86bcc33</hash>
      <file>
        <id>VX-2</id>
        <path>VX-2.mov</path>
        <uri>file:///mnt/storage/Vidispine/VX-2.mov</uri>
        <state>CLOSED</state>
        <size>30346173</size>
        <timestamp>2011-10-13T07:42:48.178+02:00</timestamp>
        <refreshFlag>727</refreshFlag>
        <storage>VX-1</storage>
        <item>
          <id>VX-2</id>
          <shape>
            <id>VX-2</id>
            <component>
              <id>VX-2</id>
            </component>
            <component>
              <id>VX-2</id>
            </component>
            <component>
              <id>VX-2</id>
            </component>
          </shape>
        </item>
      </file>
    </file>
  </asset>
  <asset>
    <id>urn:uuid:76BE320F-48E0-47A5-A076-227158C50024</id>
    <name>Clip A</name>
    <type>clip</type>
    <item id="VX-1" match="file" permission="OWNER"/>
    <file>
      <path>file://localhost/Users/maria/Movies/Vidispine/VX-1.mov</path>
      <hash>7b8d6ffe1ea468800578d6b7d4a09b012c461569</hash>
      <file>
        <id>VX-1</id>
        <path>VX-1.mov</path>
        <uri>file:///mnt/storage/Vidispine/VX-1.mov</uri>
        <state>CLOSED</state>
        <size>30346173</size>
        <timestamp>2011-10-13T07:41:48.053+02:00</timestamp>
        <refreshFlag>727</refreshFlag>
        <storage>VX-1</storage>
        <item>
          <id>VX-1</id>
          <shape>
            <id>VX-1</id>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
            <component>
              <id>VX-1</id>
            </component>
          </shape>
        </item>
      </file>
    </file>
  </asset>
</ProjectFileDocument>
HTML/XML