Asynchronous Upload - Recommended Use
This section describes the reccomended procedure for asychronous uploads.
Content conversions should only be performed once the content upload has been completed. This can be enforced by performing the upload as part of a batch. Content conversions within a batch can be set as dependent on the completion of other content conversions. The reccomended practise, therefore, is to set content conversions to be dependent on the completion of the asynchronous content upload. This will guarantee that content conversions will only begin once the content has been successfully uploaded.
Procedure
The recommended procedure is :
- Call the content upload webservice method with no inline media or media reference specified. This will return a unique ID for the new content to be uploaded under.
- Create a new batch.
- Create a new asynchronous content conversion assigned to the batch with the unique ID as the
LOCATIONparamater. - Create content conversions dependent on the asynchronous content conversion and assigned to the batch.
- Start the batch.
We'll run through this process step by step, with an example webservice request/response at each phase.
Call Content Upload
Call the content upload webservice method with no inline media or media reference specified. For example:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:contentUploadRequest xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <clientApplicationId>petshow</clientApplicationId> <clientApplicationCredentials>Wf</clientApplicationCredentials> <contentMetaData> <key>subject</key> <value>dog balancing biscuit on nose</value> <key>copyright</key> <value>© 2008 Acme Dog Films</value> </contentMetaData> <addressType>m</addressType> </ns2:contentUploadRequest> </soap:Body> </soap:Envelope>
This will return a unique ID under which the content can be subsequently loaded. For example:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:contentUploadResponse xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <contentIdentifier>1/2/3/4/adsd/petshow</contentIdentifier> <status>200</status> </ns2:contentUploadResponse> </soap:Body> </soap:Envelope>
Create a New Batch
Create a batch to run the asynchronous upload and content conversions in:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:createContentConvertBatchRequest xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <clientApplicationId>petshow</clientApplicationId> <clientApplicationCredentials>Wf</clientApplicationCredentials> </ns2:createContentConvertBatchRequest> </soap:Body> </soap:Envelope>
This will return a the ID of the newly created batch. For example:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:createContentConvertBatchResponse xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <batchId>1025</batchId> <status>200</status> </ns2:createContentConvertBatchResponse> </soap:Body> </soap:Envelope>
Create an Asynchronous Content Conversion
Create a new asynchronous content conversion assigned to the batch with the unique ID as the LOCATION paramater. For example:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body> <ns2:contentConvertRequest xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <clientApplicationId>petshow</clientApplicationId> <clientApplicationCredentials>Wf</clientApplicationCredentials> <conversionId>0</conversionId> <scriptParameter> <key>LOCATION</key> <value>http://content.yospace.com/myvideo.flv</value> </scriptParameter> <restricted>true</restricted> <successUrl>http://www.site.com/callback.pl?myId=45</successUrl> <failureUrl>http://www.site.com/cb_error.pl?myId=45</failureUrl> <contentIdentifier>1/2/3/4/adsd/petshow</contentIdentifier> <addressType>m</addressType> <priority>10</priority> <batchParameters> <batchId>1025</batchId> <batchParameters/> </ns2:contentConvertRequest>
</soap:Body> </soap:Envelope>
This will return the status of the content conversion request and the job ID. The job ID will be required later when setting up the dependenices for content conversions. An example response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:contentConvertResponse xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <status>200</status> <jobId>15123</jobId> </ns2:contentConvertResponse>
</soap:Body> </soap:Envelope>
Create Content Conversion(s)
Create content a conversion which is dependent on the asynchronous content conversion and assign it to the batch. For example :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body> <ns2:contentConvertRequest xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <clientApplicationId>petshow</clientApplicationId> <clientApplicationCredentials>Wf</clientApplicationCredentials> <conversionId>1001</conversionId> <restricted>false</restricted> <successUrl>http://www.site.com/callback.pl?myId=45</successUrl> <failureUrl>http://www.site.com/cb_error.pl?myId=45</failureUrl> <contentIdentifier>1/2/3/4/adsd/petshow</contentIdentifier> <addressType>m</addressType> <priority>10</priority> <batchParameters> <batchId>1025</batchId> <prerequisiteJobId>15123</prerequisiteJobId> <batchParameters/> </ns2:contentConvertRequest>
</soap:Body> </soap:Envelope>
Start the Batch
Start the batch. For example :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:startContentConvertBatchRequest xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <clientApplicationId>petshow</clientApplicationId> <clientApplicationCredentials>Wf</clientApplicationCredentials> <batchId>1025</batchId> </ns2:startContentConvertBatchRequest> </soap:Body> </soap:Envelope>
This will return a status code. For example:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:createContentConvertBatchResponse xmlns:ns2="http://www.yospace.com/tundra/ContentService/"> <status>200</status> </ns2:createContentConvertBatchResponse> </soap:Body> </soap:Envelope>