Video

Video's genereren

Maak video's met Seedance, Kling, Omni, Wan, Grok, Veo, Vidu, PixVerse en MiniMax op basis van een prompt, een eerste frame (en eventueel een laatste), van referentieafbeeldingen, video's en audio. Video's maken duurt een paar minuten, dus je start de generatie en vraagt later de status op.

POST/v1/videos
ModelIDPrijs per secondeVanafGeluidDuur
Seedance 2.5seedance-2.5480p $0.135 · 720p $0.305 · 1080p $0.75Prompt, eerste en laatste frame, of maximaal 9 referentieafbeeldingenStandaard aan, gratis4 tot 30 s
Seedance 2.0seedance-2.0480p $0.097 · 720p $0.199 · 1080p $0.445 · 4K $0.99Prompt, eerste en laatste frame, of maximaal 9 referentieafbeeldingenStandaard aan, gratis4 tot 15 s
Seedance 2.0 Fastseedance-2.0-fast480p $0.074 · 720p $0.159Prompt, eerste en laatste frame, of maximaal 9 referentieafbeeldingenStandaard aan, gratis4 tot 15 s
Kling 4.0kling-4.0720p $0.15 · 1080p $0.225Prompt, eerste en laatste frame, of maximaal 10 referentieafbeeldingenAltijd aan3 tot 30 s
Seedance 2.0 Miniseedance-2.0-mini480p $0.047 · 720p $0.10Prompt, eerste en laatste frame, of maximaal 9 referentieafbeeldingenStandaard aan, gratis4 tot 15 s
Gemini Omni Flashgemini-omni-flash360p $0.042 · 720p $0.042 · 1080p $0.042 · 4K $0.07Prompt, eerste en laatste frame, of maximaal 10 referentieafbeeldingenAltijd aan4 tot 10 s
Kling 3.0kling-3.0720p $0.185 (silent $0.125) · 1080p $0.235 (silent $0.18)Prompt of eerste en laatste frameStandaard aan; zonder geluid is goedkoper3 tot 15 s
Wan 3.0wan-3.0480p $0.039 · 720p $0.079 · 1080p $0.158Prompt, eerste en laatste frame, of maximaal 10 referentieafbeeldingenStandaard aan, gratis2 tot 30 s
Grok Imagine Video 1.5grok-imagine-video-1.5480p $0.071 · 720p $0.124Prompt, een eerste frame, of maximaal 3 referentieafbeeldingenStandaard aan, gratis1 tot 15 s
Veo 3.1 Fastveo-3.1-fastClip van 720p $0.20 per 8 sPrompt of een eerste frameAltijd aan8 s
Vidu Q3 Turbovidu-q3-turbo540p $0.03 · 720p $0.047 · 1080p $0.057Prompt of eerste en laatste frameStandaard aan, gratis1 tot 16 s
PixVerse V6pixverse-v6360p $0.027 (silent $0.019) · 540p $0.035 (silent $0.027) · 720p $0.047 (silent $0.035) · 1080p $0.09 (silent $0.07)Prompt of eerste en laatste frameStandaard aan; zonder geluid is goedkoper1 tot 15 s
MiniMax H3minimax-h3768p $0.039 · 2K $0.064Prompt en maximaal 9 referentieafbeeldingen, 3 videos and 3 audio clipsAltijd aan4 tot 15 s

Starten, status opvragen, downloaden

import os, time, requests
API = "https://api.zurelay.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"}
# 1. Start the video
response = requests.post(f"{API}/videos", headers=HEADERS, json={
"model": "seedance-2.0",
"prompt": "A paper boat drifting down a rain-soaked street at night, neon reflections, slow dolly shot",
"seconds": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
})
response.raise_for_status() # a 4xx says what to fix
job = response.json()
# 2. Poll until it's done (usually 2 to 6 minutes)
while job["status"] in ("queued", "in_progress"):
time.sleep(10)
job = requests.get(f"{API}/videos/{job['id']}", headers=HEADERS).json()
if job["status"] == "failed":
raise SystemExit(job["error"]["message"])
# 3. Download the MP4
video = requests.get(f"{API}/videos/{job['id']}/content", headers=HEADERS)
open("boat.mp4", "wb").write(video.content)

Elk videomodel werkt hetzelfde: wijzig model en de aanvraag blijft verder gelijk. De modelgidsen leggen uit waar elk model het best in is: Seedance, Kling, Wan, Grok Imagine, Omni Flash, MiniMax H3, Veo, Vidu en PixVerse.

Liever niet steeds de status opvragen? Voeg callback_url toe en de voltooide video wordt met een ondertekend POST-verzoek naar je server gestuurd zodra hij klaar is. Zie Callbacks.

Parameters

modelstringverplicht
De ID van een videomodel.
promptstring
Wat er gebeurt, tot 8,000 tekens (Kling leest tot 2,500, Vidu reads up to 2,000, PixVerse reads up to 2,048, MiniMax reads up to 7,000). Verplicht, tenzij je een eerste frame of referentieafbeeldingen meegeeft.
negative_promptstring
Wat je niet in de video wilt, tot 2,500 tekens. Kling and PixVerse lezen dit; andere modellen weigeren het.
secondsinteger
Lengte in hele seconden, binnen het bereik van het model (zie de tabel). Standaard 5, of de dichtstbijzijnde lengte die het model ondersteunt.
resolutionstring
Bijvoorbeeld 480p, 720p, 1080p, 2k of 4k: de opties per model staan in de tabel. Standaard 720p, of de laagste resolutie van het model.
aspect_ratiostring
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, of adaptive (de beeldverhouding van het eerste frame; de standaard als je er een meegeeft). Anders is de standaard 16:9. Kling makes 16:9, 9:16, 1:1 en 21:9; Omni and Veo make 16:9 and 9:16; Kling makes 16:9, 9:16 and 1:1; Grok, Vidu and PixVerse make 16:9, 9:16, 1:1, 4:3 and 3:4.
sizestring
In plaats van resolutie en beeldverhouding: pixels zoals 1280x720.
generate_audioboolean
Geluid en spraak die samen met de video worden gegenereerd. Standaard true. (audio werkt ook.) Kling and PixVerse cost minder zonder geluid.
seedinteger
Dezelfde seed en instellingen geven vergelijkbare resultaten. Kling, Grok and Veo have no seed and ignore it.
first_framestring
Een afbeelding waarmee de video begint: een link of een data-URL. MiniMax takes none: give the image in reference_images.
last_framestring
Een afbeelding waarmee de video eindigt. Vereist een eerste frame. Seedance, Kling, Omni, Wan, Vidu and PixVerse take one.
reference_imagesarray
Afbeeldingen van personages, producten, plaatsen of een stijl om te gebruiken: Seedance up to 9, Kling up to 10, Omni up to 10, Wan up to 10, Grok up to 3, MiniMax up to 9; Veo, Vidu and PixVerse take none. Niet te combineren met frames.
reference_videosarray
Video's waarvan je de uitstraling, beweging of het camerawerk wilt gebruiken, of een video om te bewerken of te verlengen: MP4 of MOV, als links of data-URL's, in de prompt aangeduid als @Video1, @Video2 enzovoort. Alleen Seedance 2.5, Seedance 2.0, Gemini Omni Flash en MiniMax H3. De seconden ervan worden berekend tegen een deel van de prijs per seconde, of bij sommige modellen helemaal niet; zie Referentievideo's en audio.
reference_audioarray
Stem, muziek of geluid om te gebruiken: MP3 of WAV, als links of data-URL's, aangeduid met @Audio1 enzovoort. Alleen Seedance 2.5, Seedance 2.0 en MiniMax H3, zonder extra kosten.
reference_modestring
Met referentievideo's: edit er een, extend er een, of maak een nieuwe video op basis van de referenties (reference). Standaard auto: het model volgt de prompt. Alleen Seedance 2.5.
callback_urlstring
Een https-URL om de voltooide (of mislukte) video naartoe te sturen, in plaats van te pollen. Zie Callbacks.

Beginnen met afbeeldingen

Eerste en laatste frame

Animeer een stilstaand beeld: de video begint precies met first_frame. Voeg last_frame toe om op die afbeelding te eindigen, zodat je beide uiteinden van de opname bepaalt. MiniMax starts in plaats daarvan op basis van referentieafbeeldingen.

Requestbody
{
"model": "seedance-2.0",
"first_frame": "https://example.com/storefront-day.jpg",
"last_frame": "https://example.com/storefront-night.jpg",
"prompt": "Time passes from afternoon to night; lights come on inside the shop.",
"seconds": 6,
"resolution": "720p"
}

Referentieafbeeldingen

Geef maximaal 10 afbeeldingen op (Seedance up to 9, Kling up to 10, Omni up to 10, Wan up to 10, Grok up to 3, MiniMax up to 9; Veo, Vidu en PixVerse take none) en verwijs er in de prompt op volgorde naar (@Image1, @Image2…): de mensen, producten en plekken erop verschijnen in de video.

Requestbody
{
"model": "seedance-2.5",
"reference_images": [
"https://example.com/chef.jpg",
"https://example.com/kitchen.jpg",
"https://example.com/dish.jpg"
],
"prompt": "The chef from @Image1 plates the dish from @Image3 in the kitchen from @Image2, close-up, warm light.",
"seconds": 8,
"resolution": "720p",
"aspect_ratio": "9:16"
}

Referentievideo's en -audio

Geef video's op om iemands uiterlijk en bewegingen, een camerabeweging of een scène over te nemen, en audio voor een stem, melodie of geluidseffecten. Verwijs er in de prompt op volgorde naar, net als bij afbeeldingen: @Video1, @Audio1. Je kunt ze combineren met referentieafbeeldingen, maar niet met een eerste frame.

Requestbody
{
"model": "seedance-2.5",
"reference_images": ["https://example.com/singer.jpg"],
"reference_videos": ["https://example.com/dance-moves.mp4"],
"reference_audio": ["https://example.com/chorus.mp3"],
"prompt": "The singer from @Image1 performs the dance from @Video1 on a rooftop at dusk, singing to @Audio1.",
"seconds": 8,
"resolution": "720p"
}
ModelReferentievideo'sReferentieaudioPer seconde referentievideo
Seedance 2.5Maximaal 10, 30 s in allMaximaal 10, 30 s in all480p $0.081, 720p $0.183
Seedance 2.0Maximaal 3, 15 s in allMaximaal 3, 15 s in all, with an image or video480p $0.0582, 720p $0.1194
Gemini Omni FlashMaximaal 3, 10 s eachGeenGratis
MiniMax H3Maximaal 3, 15 s eachMaximaal 3, 15 s in allGratis

Het model leest elke seconde van een referentievideo, dus die seconden worden ook in rekening gebracht, tegen een deel van de prijs per seconde: een video van 5 s met een referentie van 10 s kost 5 seconden plus 10 referentieseconden. Referentieaudio kost niets extra. Elk video-object toont de in rekening gebrachte referentieseconden (reference_seconds).

Een video bewerken en verlengen

Stel reference_mode in op edit om een referentievideo te wijzigen (een persoon of object vervangen, iets toevoegen of verwijderen, de muziek veranderen), of op extend om die aan het einde of begin te verlengen. Beschrijf in de prompt wat er moet gebeuren: “Vervang de auto in @Video1 door die in @Image1”, “Laat @Video1 doorgaan terwijl de danser het podium verlaat”.

  • Een bewerking behoudt de beeldverhouding en lengte van de video, dus laat aspect_ratio en seconds weg. De prijs wordt berekend op basis van de langste referentievideo, die 4 tot 30 seconden moet duren.
  • Een verlenging behoudt de beeldverhouding van de video; seconds bepaalt hoelang de nieuwe video duurt.
  • Zonder reference_mode beslist het model op basis van de prompt. Een prompt die als een bewerking klinkt, kan mislukken als seconds of aspect_ratio is ingesteld (mislukte video's zijn gratis).

Regels voor afbeeldingen

  • PNG, JPEG of WebP, als openbare https-link of data-URL, tot 10 MB.
  • 300 tot 6000 pixels per zijde, en niet breder of hoger dan 5:2. Data-URL's die hier niet aan voldoen, worden direct geweigerd met een bericht dat uitlegt waarom. Links worden gelezen zodra de video start: als een link geen bruikbare afbeelding oplevert, mislukt de video met invalid_image, zonder kosten.
  • Frames of referenties, niet beide in één request.
  • Requests zijn JSON: je geeft afbeeldingen mee als links of data-URL's, niet als multipart-uploads.

Het video-object

GET /v1/videos/video_abc123
{
"id": "video_abc123",
"object": "video",
"model": "seedance-2.0",
"status": "completed",
"progress": 100,
"created_at": 1790870400,
"completed_at": 1790870562,
"expires_at": 1793462400,
"seconds": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"size": "1280x720",
"generate_audio": true,
"url": "https://...signed link...",
"url_expires_at": 1790956962,
"cost": 1.035,
"error": null
}
VeldBetekenis
statusqueued, in_progress, completed of failed.
progressEen schatting van 0 tot 100, op basis van hoelang het model er meestal over doet.
urlDe MP4, zodra de video klaar is. De link werkt 24 uur; haal de taak opnieuw op voor een nieuwe link.
expires_atWanneer de video wordt verwijderd: 30 dagen nadat die is gemaakt, of eerder als iemand die in de bibliotheek verwijdert.
costWat het heeft gekost, zodra de video klaar is.
reference_secondsSeconden referentievideo die meetellen in de prijs, als je die hebt meegegeven.
errorVoor mislukte video's: code (content_policy, invalid_image, invalid_request als het model de aanvraag niet kan uitvoeren zoals gevraagd, generation_failed, of generation_timeout na 90 minuten) en een bericht.

Andere endpoints

EndpointGeeft terug
GET /v1/videos/{id}Eén video, zoals hierboven.
GET /v1/videos/{id}/contentDe MP4 zelf.
GET /v1/videos?limit=20&after=video_abcDe video's in je werkruimte, nieuwste eerst, met first_id en last_id voor paginering.

Betalen voor video

Een video kost de prijs per seconde (afhankelijk van de resolutie) maal de lengte; Kling en PixVerse cost minder per seconde zonder geluid; de seconden van referentievideo's tellen mee tegen een deel van dat tarief. Als je een video start, wordt dat bedrag gereserveerd op je saldo; het wordt afgeschreven zodra de video klaar is en vrijgegeven als de video mislukt. Een mislukte video is gratis.

Maak een proefversie op de laagste resolutie en houd die kort. Maak de definitieve versie op een hogere resolutie zodra de prompt goed is. Het grootste deel van de wachttijd zit in de wachtrij, dus proefversies zijn niet veel sneller, maar kosten een fractie.

Vragen, of ontbreekt er iets? Vraag het ons supportteam en je krijgt antwoord per e-mail, meestal binnen een minuut.