Video Generation

View as Markdown

Video Generation

Generate a Video

client.videos.generate sends POST /v1/video/generations and returns a CreateVideoGenerationResponse containing the task ID.

1from meshapi import MeshAPI, VideoGenerationParams, VideoContentItem
2import time
3
4client = MeshAPI(base_url="https://api.meshapi.ai", token="rsk_...")
5
6task = client.videos.generate(
7 VideoGenerationParams(
8 model="byteplus/dreamina-seedance-2-0",
9 content=[
10 VideoContentItem(type="text", text="A serene mountain lake at sunrise"),
11 ],
12 )
13)
14
15print(f"Task ID: {task.id}")

Poll Until Complete

1while True:
2 status = client.videos.retrieve(task.id)
3 print(f"Status: {status.status}")
4 if status.status in ("succeeded", "failed"):
5 break
6 time.sleep(5)
7
8if status.status == "succeeded" and status.content:
9 for item in status.content:
10 if item.type == "video_url":
11 print("Video URL:", item.url)

List Tasks

client.videos.list sends GET /v1/video/generations.

1from meshapi import ListVideoGenerationsParams
2
3listing = client.videos.list(ListVideoGenerationsParams(limit=20))
4print(f"{listing.total} total tasks")
5for task in listing.data:
6 print(task.id, task.status)

Retrieve a Task

client.videos.retrieve sends GET /v1/video/generations/{task_id}.

1task = client.videos.retrieve("task-id")
2print(task.status)

Async

1from meshapi import AsyncMeshAPI, VideoGenerationParams, VideoContentItem
2
3async with AsyncMeshAPI(base_url="https://api.meshapi.ai", token="rsk_...") as client:
4 task = await client.videos.generate(
5 VideoGenerationParams(
6 model="byteplus/dreamina-seedance-2-0",
7 content=[VideoContentItem(type="text", text="A futuristic city at night")],
8 )
9 )
10 status = await client.videos.retrieve(task.id)
11 print(status.status)

Parameters

VideoGenerationParams

FieldTypeNotes
modelstrRequired. e.g. "byteplus/dreamina-seedance-2-0"
contentlist[VideoContentItem]Required. Prompt content items.
durationint | NoneDuration in seconds
resolutionstr | Nonee.g. "1080p"
seedint | NoneReproducibility seed

VideoContentItem

FieldTypeNotes
typestr"text" or "image_url"
textstr | NoneText prompt (when type="text")
image_urlstr | NoneImage URL (when type="image_url")

VideoTaskResponse

FieldTypeNotes
idstrTask ID
statusstr"pending", "running", "succeeded", "failed"
contentlist | NoneOutput items when succeeded
errorobject | NoneError details when failed