Often times you will want to use third party tools to create files and related items in Portal rather than uploading, importing from storage, or using an auto-import folder.

Here is the process I took which worked in registering both a new element available in a storage as well as adding different shapes to it. Hopefully it helps and is easy to replicate. I did it all with curl, but using anything else that can post should work fine.

First, we create a placeholder. I DIDN’T apply a settings profile to the placeholder, which means that it takes on the properties of the user that is authed in the API:

curl --data "titleA Movie" -H "Content-type: application/xml" -u admin:admin "http://cantemo:8080/API/import/placeholder?container=1&settings=VX-1"

This gives me back the id of my new placeholder (assuming it all worked)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ItemDocument id="VX-442" xmlns="http://xml.vidispine.com/schema/vidispine"/>

Next, I figured out what the VS ID of the master file was. In this case, I have two files, Amovie.mov and Amovie_lowres.mp4.

curl -H "Content-type: application/xml" -u admin:admin "http://cantemo:8080/API/storage/VX-4/file/byURI;path=Amovie.mov"

This returns the following XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><FileDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <id>VX-1542</id>
    <path>Amovie.mov</path>
    <uri>file:///media/flowrage/Space/Cantemo/Ingest/Amovie.mov</uri>
    <state>OPEN</state>
    <size>151672745</size>
    <timestamp>2014-12-17T16:39:26.708-05:00</timestamp>
    <refreshFlag>1</refreshFlag>
    <storage>VX-4</storage>
    <metadata>
    <field>
    <key>atime</key>
    <value>1418852349000</value>
    </field>
    <field>
    <key>created</key>
    <value>1416580881000</value>
    </field>
    <field>
    <key>mtim</key>
    <value>1416580881000</value>
    </field>
    </metadata>
</FileDocument>

From this, I now know my file has an ID of VX-1542. I can now register it to my placeholder (VX-442). I’ve made an ingest profile called “API” for this case that does NOT have any automatic shapes created.

curl --data "" -H "Content-type: application/xml" -u admin:admin "http://cantemo:8080/API/import/placeholder/VX-442/container?jobmetadata=portal_groups:StringArray%3dAPI&fileId=VX-1542"

On success I get back the job ID

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JobDocument xmlns="http://xml.vidispine.com/schema/vidispine">>
    <jobId>VX-829</jobId>
    <user>admin</user>
    <started>2014-12-17T21:52:21.187Z</started>
    <status>READY</status><type>PLACEHOLDER_IMPORT</type>
    <priority>MEDIUM</priority>
</JobDocument>

Now I can register my lowres shape as well. Note that you have to have a shape name in Portal to register too, so you can’t just make up a shape name here. You can make a transcode profile that is “dummy” since you’ll never actually use it to transcode if you like. Repeat the first step to get my ID:

curl -H "Content-type: application/xml" -u admin:admin "http://cantemo:8080/API/storage/VX-4/file/byURI;path=Amovie_lowres.mp4"

Which returns:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FileDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <id>VX-1543</id>
    <path>Amovie_lowres.mp4</path>
    <uri>file:///media/flowrage/Space/Cantemo/Ingest/Amovie_lowres.mp4</uri><state>CLOSED</state>
    <size>11000050</size>
    <hash>7ec6c34713c630264946a6199726fd01407ab7af</hash>
    <timestamp>2014-12-17T16:45:28.266-05:00</timestamp>
    <refreshFlag>1</refreshFlag>
    <storage>VX-4</storage><metadata>
    <field>
    <key>atime</key>
    <value>1418852678000</value>
    </field>
    <field>
    <key>created</key>
    <value>1418852360000</value>
    </field>
    <field>
    <key>mtime</key>
    <value>1418852360000</value>
    </field>
    </metadata>
</FileDocument>

So now I have my lowres ID, I can register it:

curl --data "" -H "Content-type: application/xml" -u admin:admin "http://cantemo:8080/API/item/VX-442/shape?tag=lowres&fileId=VX-1543"

Which gives me the job doc again:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JobDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <jobId>VX-832</jobId>
    <user>admin</user>
    <started>2014-12-17T22:00:22.491Z</started>
    <status>READY</status>
    <type>SHAPE_IMPORT</type>
    <priority>MEDIUM</priority>
</JobDocument>

Last but not least, we trigger thumbnail creation

curl --data "" -H "Content-type: application/xml" -u admin:admin "http://cantemo:8080/API/item/VX-442/thumbnail/?createThumbnails=true&createPoster"

This dumps out my final job ID:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JobDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <jobId>VX-834</jobId>
    <user>admin</user>
    <started>2014-12-17T22:01:56.768Z</started>
    <status>READY</status>
    <type>THUMBNAIL</type>
    <priority>MEDIUM</priority>
</JobDocument>

Now I can hop to my Portal and make sure it all looks good in reality.