Go SDK
Generate videos from text, images, and URLs using the VCursor SDK for Go.
Installation
bash
go get github.com/JThh/vcursor/go/vcursor
Quick Start
Initialize the client and submit your first video generation task.
main.go
package mainimport ("fmt""log""github.com/JThh/vcursor/go/vcursor")func main() {client := vcursor.NewClient(vcursor.Options{APIKey: "vk-..."})// Submit a video generation taskresp, err := client.Submit(&vcursor.SubmitRequest{Prompt: "a cat playing piano in a jazz club",})if err != nil {log.Fatal(err)}// Wait for completion with progress callbackresult, err := client.WaitForCompletion(resp.TaskID, 0, func(p *vcursor.TaskProgress) {fmt.Printf("%.0f%%\n", p.Data.Progress)})if err != nil {log.Fatal(err)}fmt.Println(result.Data.Products.URL)}
Agent Mode
For complex tasks, use the Agent API to orchestrate multi-step generation.
agent.go
resp, err := client.SubmitAgent(&vcursor.AgentSubmitRequest{Message: "create a 30s commercial for a coffee brand",Duration: "30s",AspectRatio: "16:9",})if err != nil {log.Fatal(err)}result, err := client.WaitForAgentCompletion(resp.TaskID, 0, func(p *vcursor.AgentProgress) {fmt.Printf("%.0f%% - %s\n", p.Progress, p.CurrentStage)})if err != nil {log.Fatal(err)}fmt.Println(result.VideoURL)
Concurrency Limiting
Manage your API usage with built-in concurrency checks.
go
status, err := client.CheckConcurrency("standard")fmt.Printf("Used: %d/%.0f\n", status.Used, status.Limit)// Client-side limitmaxConc := 10client := vcursor.NewClient(vcursor.Options{APIKey: "vk-...",MaxConcurrency: &maxConc,})