"github.com/volcengine/ark-runtime-go/arkruntime"
model "github.com/volcengine/ark-runtime-go/arkruntime/model/contentgeneration"
client := arkruntime.NewClientWithApiKey(
os.Getenv("ARK_API_KEY"), // Get API Key:https://ark.volcengine.com/region:cn-beijing/apikey
arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"), // The base URL for model invocation
ctx := context.Background()
// Replace with Model ID
modelEp := "doubao-seedance-2-0-260128"
fmt.Println("----- create request -----")
createReq := &model.CreateContentGenerationTaskRequest{
Content: []model.ContentItem{
Type: model.ContentTypeText,
Text: model.NewOptString("一位身穿绿色亮片礼服的女性站在粉红色背景前,周围飘落着五彩斑斓的彩纸 --wm true --dur 5"),
createResp, err := client.CreateContentGenerationTask(ctx, createReq)
fmt.Printf("create content generation error: %v", err)
fmt.Printf("Task Created with ID: %s", taskID)
// Polling query section
fmt.Println("----- polling task status -----")
getResp, err := client.GetContentGenerationTask(ctx, getReq)
fmt.Printf("get content generation task error: %v", err)
status := getResp.Status
if status == "succeeded" {
fmt.Println("----- task succeeded -----")
fmt.Printf("Task ID: %s \n", getResp.ID)
fmt.Printf("Model: %s \n", getResp.Model)
fmt.Printf("Video URL: %s \n", getResp.Content.Or(model.TaskContent{}).VideoURL.Or(""))
fmt.Printf("Completion Tokens: %d \n", getResp.Usage.Or(model.TaskUsage{}).CompletionTokens)
fmt.Printf("Created At: %d, Updated At: %d", getResp.CreatedAt.Or(0), getResp.UpdatedAt.Or(0))
} else if status == "failed" {
fmt.Println("----- task failed -----")
if getResp.Error.IsSet() {
fmt.Printf("Error Code: %s, Message: %s", getResp.Error.Value.Code, getResp.Error.Value.Message)
fmt.Printf("Current status: %s, Retrying in 3 seconds... \n", status)
time.Sleep(3 * time.Second)