package org.example.PutConvertWorkflow;
import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosClientException;
import com.volcengine.tos.TosServerException;
import com.volcengine.tos.comm.common.*;
import com.volcengine.tos.model.bucket.*;
import com.volcengine.tos.model.object.*;
public class PutConvertWorkflowExample {
public static void main(String[] args) {
String endpoint = System.getenv("TOS_ENDPOINT");
String region = System.getenv("TOS_REGION");
String accessKey = System.getenv("TOS_ACCESS_KEY");
String secretKey = System.getenv("TOS_SECRET_KEY");
String bucketName = System.getenv("TOS_BUCKET");
TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);
TimeInterval timeInterval = TimeInterval.builder()
ClipConfig clipConfig = ClipConfig.builder()
Container container = Container.builder()
.format(ContainerFormatType.MP4)
Video video = Video.builder()
Audio audio = Audio.builder()
Transcode transcode = Transcode.builder()
.timeInterval(timeInterval)
PutVideoConvertTemplateInput putVideoTemplateInput = PutVideoConvertTemplateInput.builder()
.name("example-video-convert-workflow-template")
.transcodeConfig(transcode)
PutVideoConvertTemplateOutput putVideoTemplateOutput = tos.putVideoConvertTemplate(putVideoTemplateInput);
ConvertJobOutput videoOutput = ConvertJobOutput.builder()
.object("output/video.mp4")
OperationsTranscode videoTranscodeOperation = OperationsTranscode.builder()
.operationID("transcode")
.templateID(putVideoTemplateOutput.getId())
WorkflowOperations workflowOperations = WorkflowOperations.builder()
.transcode(java.util.Arrays.asList(videoTranscodeOperation))
WorkflowExtFilter extFilter = WorkflowExtFilter.builder()
.videoExts(java.util.Arrays.asList("mp4"))
String ruleId = "video-convert-workflow-" + System.currentTimeMillis();
java.util.List<java.util.List<String>> topology = java.util.Arrays.asList(
java.util.Arrays.asList("transcode")
ConvertWorkflowRule rule = ConvertWorkflowRule.builder()
.operations(workflowOperations)
PutConvertWorkflowInput putWorkflowInput = PutConvertWorkflowInput.builder()
.rules(java.util.Arrays.asList(rule))
PutConvertWorkflowOutput putWorkflowOutput = tos.putConvertWorkflow(putWorkflowInput);
System.out.println("Video transcoding workflow created successfully");
System.out.println("RequestID: " + putWorkflowOutput.getRequestInfo().getRequestId());
System.out.println("StatusCode: " + putWorkflowOutput.getRequestInfo().getStatusCode());
System.out.println("Rule ID: " + ruleId);
System.out.println("Video transcoding output location: " + videoOutput.getBucket() + "/" + videoOutput.getObject());
} catch (TosClientException e) {
System.out.println("Operation failed");
System.out.println("Message: " + e.getMessage());
if (e.getCause() != null) {
e.getCause().printStackTrace();
} catch (TosServerException e) {
System.out.println("Operation failed");
System.out.println("StatusCode: " + e.getStatusCode());
System.out.println("Code: " + e.getCode());
System.out.println("Message: " + e.getMessage());
System.out.println("RequestID: " + e.getRequestID());
System.out.println("Operation failed");
System.out.println("unexpected exception, message: " + t.getMessage());