Manage online editing projects

Updated at:

Sample code for managing online editing projects in Intelligent Media Services by calling OpenAPI operations through a server-side SDK.

Notes

The Title parameter is required when you create an online editing project. To submit a video editing job by calling the SubmitMediaProducingJob operation, you must also set the Timeline parameter.

Sample code

You can debug these operations online in the Alibaba Cloud OpenAPI Developer Portal.

package com.aliyun.ice.sample;

import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;

public class EditingProjectSample {

    public static void main (String args[]) throws Exception {
    
    	// An AccessKey of an Alibaba Cloud account has access privileges for all APIs. Use a Resource Access Management (RAM) user for API calls or daily O&M.
    	// This example shows how to save the AccessKey ID and AccessKey secret as environment variables. For more information about how to configure them, see: https://help.aliyun.com/document_detail/378657.html
    	com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
    	Config config = new Config();
    	config.setCredential(credentialClient);
    
    	// To hard-code the AccessKey ID and AccessKey secret, use the following code. However, we strongly recommend that you do not save your AccessKey ID and AccessKey secret in your project code. This can lead to an AccessKey leak and compromise the security of all resources in your account.
    	// config.accessKeyId = <yourAccessKeyId>;
    	// config.accessKeySecret = <yourAccessKeySecret>;
    
    	config.endpoint = "ice.cn-shanghai.aliyuncs.com";
    	Client client = new Client(config);

        // Search for online editing projects
        SearchEditingProjectRequest searchEditingProjectRequest = new SearchEditingProjectRequest();
        SearchEditingProjectResponse searchEditingProjectResponse = client.searchEditingProject(searchEditingProjectRequest);

        System.out.println("totle count : " + searchEditingProjectResponse.getBody().getTotalCount());
        System.out.println("next token : " + searchEditingProjectResponse.getBody().getNextToken());
        System.out.println("size : " + searchEditingProjectResponse.getBody().getProjectList().size());
        if (searchEditingProjectResponse.getBody().getProjectList().size() > 0) {
            System.out.println("projectid : " + searchEditingProjectResponse.getBody().getProjectList().get(0).getProjectId());
            System.out.println("title : " + searchEditingProjectResponse.getBody().getProjectList().get(0).getTitle());
            System.out.println("maxresult : " + searchEditingProjectResponse.getBody().getMaxResults());
        }

        // Create an online editing project
        CreateEditingProjectRequest createEditingProjectRequest = new CreateEditingProjectRequest();
        createEditingProjectRequest.setTitle("TestProjectName");
        createEditingProjectRequest.setDescription("Test project description");
        createEditingProjectRequest.setTimeline("{\"VideoTracks\":[{\"VideoTrackClips\":[{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"},{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"}]}]}");
        createEditingProjectRequest.setCoverURL("http://xxxx/coverUrl.jpg");
        CreateEditingProjectResponse createEditingProjectResponse = client.createEditingProject(createEditingProjectRequest);
        String projectId = createEditingProjectResponse.getBody().getProject().getProjectId();
        System.out.println("project id : " + projectId);

        // Get a single online editing project
        GetEditingProjectRequest getEditingProjectRequest = new GetEditingProjectRequest();
        getEditingProjectRequest.setProjectId(projectId);
        GetEditingProjectResponse getEditingProjectResponse = client.getEditingProject(getEditingProjectRequest);
        GetEditingProjectResponseBody.GetEditingProjectResponseBodyProject project = getEditingProjectResponse.getBody().getProject();
        System.out.println("project id : " + project.getProjectId());

        // Update an online editing project
        UpdateEditingProjectRequest updateEditingProjectRequest = new UpdateEditingProjectRequest();
        updateEditingProjectRequest.setProjectId("11119b4d7cf14dc7b83b0e801cbe1ce6");
        updateEditingProjectRequest.setTimeline("{\"VideoTracks\":[{\"VideoTrackClips\":[{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"},{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"}]}]}");
        UpdateEditingProjectResponse updateEditingProjectResponse = client.updateEditingProject(updateEditingProjectRequest);
        System.out.println("request id : " + updateEditingProjectResponse.getBody().getRequestId());

        // Delete online editing projects
        DeleteEditingProjectsRequest deleteEditingProjectsRequest = new DeleteEditingProjectsRequest();
        deleteEditingProjectsRequest.setProjectIds("****9b4d7cf14dc7b83b0e801cbe****,****9b4d7cf14dc7b83b0e801cbe****");
        DeleteEditingProjectsResponse deleteEditingProjectsResponse = client.deleteEditingProjects(deleteEditingProjectsRequest);
        System.out.println("request id : " + deleteEditingProjectsResponse.getBody().getRequestId());

    }
}

Related APIs