Video
Text zu Video
Videoclips aus einem Prompt erstellen: Bildausschnitt, Bewegung, Dauer und Auslieferung.
Ein guter Videoplan beschreibt Motiv, Ort, Handlung, Bildausschnitt und Kamerabewegung. Beginnen Sie mit kurzen Clips und iterieren Sie auf einem brauchbaren Ergebnis.
Praktische Grundlagen
Wählen Sie das Modell nach der wichtigsten Eigenschaft — Tempo, Genauigkeit, Auflösung oder Kontrolle — und speichern Sie Parameter und Version jedes Ergebnisses. sora2, veo3.1-*, wan2.7-video and kling-3.0-* — Text to video.
Ändern Sie pro Versuch nur eine Sache. Gute Ausgaben werden zu Referenzen und damit zum zuverlässigsten Ausgangspunkt der nächsten Iteration.
Behandeln Sie finished und failed als Endzustände. Nutzen Sie Polling oder Webhooks, bewahren Sie Rohfehler serverseitig auf und zeigen Sie Nutzerinnen und Nutzern nur sichere Meldungen.
Prompts und API-Beispiele
Close up shot (composition) of melting icicles (subject) on a frozen rock wall(context) with cool blue tones (ambiance), zoomed in (camera motion) maintainingclose-up detail of water drips (action).
Source: Google AI for Developers, used under CC BY 4.0; format and dimensions adapted.
A barista slides a paper cup across the counter and says "your usual, right?",warm indoor light, handheld, slight rack focus onto the cup, cafe ambience
A close-up cinematic shot follows a desperate man in a weathered green trenchcoat as he dials a rotary phone mounted on a gritty brick wall, bathed in theeerie glow of a green neon sign. The camera dollies in, revealing the tensionin his jaw and the desperation etched on his face as he struggles to make thecall. The shallow depth of field focuses on his furrowed brow and the blackrotary phone, blurring the background into a sea of neon colors and indistinctshadows, creating a sense of urgency and isolation.
Source: Google AI for Developers, used under CC BY 4.0; format and dimensions adapted.
A satellite floating through outer space with the moon and some stars in thebackground.
Source: Google AI for Developers, used under CC BY 4.0; format and dimensions adapted.
A cyclist crests a hill at dusk, silhouette against an orange sky, cameratracking alongside, dust in the air
About these samples. Ready-made examples are copied to our own storage only when their source permits reuse. The exact prompt appears above each result, and the original source and license are linked below the media.
curl -X POST https://api.api-stock.com/api/v1/generation/create \-H "Authorization: Bearer sk-your-key" \-H "Content-Type: application/json" \-d '{"model": "veo3.1-quality","input": {"prompt": "A lighthouse on a basalt cliff at dawn, slow push-in, fog rolling over the water","aspectRatio": "16:9","resolution": "4k"}}'
{"code": 200,"data": {"taskId": "019ca881-9503-7270-a560-f00fc2b15785","status": "not_started","createdAt": "2026-02-28T11:22:33.000Z"}}
{"model": "doubao-seedance-2.0","input": {"prompt": "A lighthouse on a basalt cliff at dawn, fog rolling over the water","size": "16:9","resolution": "1080p","duration": 8,"generateAudio": true,"cameraFixed": false}}
curl https://api.api-stock.com/api/v1/task/status/019ca881-9503-7270-a560-f00fc2b15785 \-H "Authorization: Bearer sk-your-key"
{"code": 200,"data": {"taskId": "019ca881-9503-7270-a560-f00fc2b15785","status": "processing","createdTime": "2026-02-28T11:22:33.000Z"}}
{"code": 200,"data": {"taskId": "019ca881-9503-7270-a560-f00fc2b15785","status": "finished","files": [{"fileUrl": "https://storage.api-stock.com/generated/video-abc123.mp4","fileType": "video"}],"createdTime": "2026-02-28T11:22:33.000Z"}}
const BASE = "https://api.api-stock.com/api/v1";const KEY = process.env.API_STOCK_KEY!;type TaskFile = { fileUrl: string; fileType: "image" | "video" | "music" };type TaskData = {taskId: string;status: "not_started" | "processing" | "finished" | "failed";files?: TaskFile[];output?: Record<string, unknown>;createdTime: string;errorMessage?: string;};async function createVideo(prompt: string): Promise<string> {const res = await fetch(`${BASE}/generation/create`, {method: "POST",headers: {Authorization: `Bearer ${KEY}`,"Content-Type": "application/json",},body: JSON.stringify({model: "veo3.1-quality",input: { prompt, aspectRatio: "16:9", resolution: "4k" },}),});const body = await res.json();if (!res.ok) {// { code, error: { message, type, code } }throw new Error(`${body.error.code}: ${body.error.message}`);}return body.data.taskId; // → "019ca881-9503-7270-a560-f00fc2b15785"}async function waitForTask(taskId: string,{ intervalMs = 10_000, timeoutMs = 20 * 60_000 } = {},): Promise<TaskData> {const deadline = Date.now() + timeoutMs;while (Date.now() < deadline) {const res = await fetch(`${BASE}/task/status/${taskId}`, {headers: { Authorization: `Bearer ${KEY}` },});const body = await res.json().catch(() => null);if (!res.ok) {const message = body?.error?.message ?? `${res.status} ${res.statusText}`;throw new Error(message);}const data = body.data as TaskData;if (data.status === "finished") return data;if (data.status === "failed") {throw new Error(data.errorMessage ?? "generation failed");}await new Promise((r) => setTimeout(r, intervalMs));}// The task is still alive server-side — resume polling later with the id.throw new Error(`timed out waiting for ${taskId}`);}const taskId = await createVideo("A lighthouse on a basalt cliff at dawn, slow push-in, fog rolling over the water",);const task = await waitForTask(taskId);console.log(task.files?.[0].fileUrl); // → https://storage.api-stock.com/...mp4
{"model": "sora2","input": {"prompt": "Neon-lit rain on an empty parking garage, handheld","aspectRatio": "9:16","duration": 15},"webhook": "https://example.com/hooks/api-stock/8f2c1e9a-secret"}
{"code": 400,"error": {"message": "Input parameters do not match the requirements for model veo3.1-quality","type": "BadRequest","code": "invalid_input"}}
{"code": 200,"data": {"taskId": "019ca881-9503-7270-a560-f00fc2b15785","status": "failed","createdTime": "2026-02-28T11:22:33.000Z","errorMessage": "This generation may violate our content policy. Please try a different prompt."}}
Mit dem eigenen Schlüssel ausführen
Jedes Modell aus diesem Leitfaden ist im API Stock-Katalog verfügbar — ein API-Schlüssel, ein Prepaid-Guthaben, keine separate Anmeldung pro Anbieter.