Udforsk
Billede
Video
Avatar
Lyd
Rediger
Værktøjer
Fashion StudioAppsArbejdsgange
Ressourcer
Priser-25%
Arteza

Studiet til alt, du laver. Et arbejdsrum, hver model.

Læs vores anmeldelser på Trustpilot

Opret

  • Billede
  • Video
  • Avatar
  • Lyd
  • Rediger
  • Fashion Studio

Udforsk

  • Bibliotek
  • Apps
  • Modeller
  • Værktøjer
  • Looks
  • Eksempler
  • Sammenlign modeller
  • Værktøjsalternativer
  • AI-ordliste
  • Arbejdsgange
  • AI Pipeline-redigering
  • Hvad er nyt

Virksomhed

  • Om
  • Blog
  • Priser
  • Kontakt
  • Status
  • Præsenteret og anmeldt
  • Multi-model AI-chat

Juridisk

  • Privatlivspolitik
  • Vilkår
  • Licenser
  • Ubegrænset politik
Modeller fraByteDanceGoogleOpenAIBlack Forest LabsMiniMaxKuaishouAlibabaStability AI
© 2026 Arteza, Inc.
Tilgængelig på 31 sprog
enEnglishesEspañolfrFrançaisdeDeutschitItalianoptPortuguêsnlNederlandsplPolskisvSvenskadaDansknoNorskfiSuomija日本語ko한국어zh中文thไทยviTiếng ViệtidBahasa IndonesiamsBahasa MelayutlFilipinoarالعربيةheעבריתfaفارسیurاردوhiहिन्दीbnবাংলাtrTürkçeruРусскийukУкраїнськаroRomânăcsČeština
arteza.ai
HjemBilledeVideoBibliotekKonto
Hjem/Blog/Seedance 2.0 API: Sådan genererer du AI-videoer programmatisk
Technical10. april 2026Arteza Team14 min læsning

Seedance 2.0 API: Sådan genererer du AI-videoer programmatisk

En udviklervejledning til Seedance 2.0 API: godkendelse, endpoints, anmodningsformater, kodeeksempler i Python og JavaScript, fejlhåndtering og bedste praksis.

Seedance 2.0 API: Sådan genererer du AI-videoer programmatisk

Generér en cinematisk AI-video med én HTTP-anmodning. Seedance 2.0 API'en er den samme genereringspipeline som webplatformen bruger, eksponeret som en ren REST-grænseflade med Bearer-godkendelse, webhooks og batch-endpoints. Hvis du kan lave en POST-anmodning, kan du bygge en videogenereringspipeline.

Denne guide dækker alt, hvad du behøver for at integrere Seedance 2.0 i dine egne applikationer: godkendelse, endpoints, parametre, fejlhåndtering og produktionsklare kodeeksempler i Python og JavaScript.

TL;DR - API på et øjeblik

  • Basis-URL: https://api.arteza.ai/v1
  • Godkendelse: Bearer-token i Authorization-headeren
  • Generering: Asynkron - indsend en opgave, poll eller brug webhook til færdiggørelse
  • Hastighedsgrænser: 60 anmodninger/minut, 5 samtidige genereringer
  • Modeller: Seedance 2.0, 1.0 Pro, 1.0 Lite, Seedream v3/v4.5/v5 - alle i én API
  • Kreditomkostning: Samme dynamiske pris pr. sekund som web-UI'et (19-351 kreditter for 2.0)
Prøv det selv- skriv en prompt og generer

5 gratis generationer · Intet kreditkort påkrævet

Hvad API'en faktisk kan

Alt, hvad webgrænsefladen kan, kan API'en også. Tekst-til-video, billede-til-video, modelvalg, varighedsstyring, billedformat, lydskift og adgang til alle modeller på platformen. Batch-endpoints til generering af mange klip på én gang. Webhook-notifikationer, så du ikke behøver at polle. Brugerdefinerede metadata, der bliver returneret i resultaterne til sporing af A/B-tests eller kampagnevarianter.

Understøttede modeller

Alle modeller bruger den samme API-overflade, blot med forskellige identifikatorer.

ModelAPI-identifikatorTypiske kreditter
Seedance 2.0seedance-2.0243-910
Seedance 1.0 Proseedance-1.0-pro48-288
Seedance 1.0 Liteseedance-1.0-lite14-84
Seedream v5seedream-v58
Seedream v4.5seedream-v4.57
Seedream v3seedream-v36
⚡

Få en API-nøgle på 30 sekunder

Opret en konto, gå til Indstillinger → API-nøgler, og du er klar til din første POST-anmodning. Gratis kreditter inkluderet.

Hent din API-nøgle

Godkendelse på 30 sekunder

Generér en API-nøgle fra dashboardet under Indstillinger > API-nøgler. Send den som et Bearer-token:

curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://api.arteza.ai/v1/account/credits

Svar:

{
  "credits": 2750,
  "tier": "popular"
}

Sikkerhedsregler, der er vigtige:

  • Send aldrig din API-nøgle i klientsidet kode eller offentlige repositories
  • Gem den i miljøvariabler (SEEDANCE_API_KEY)
  • Roter nøgler jævnligt fra dashboardet
  • Hver nøgle arver kreditbalancen fra sin forældrekonto

Endpointet til tekst-til-video

Dette er det endpoint, du vil bruge mest.

POST /v1/generate/text-to-video
{
  "model": "seedance-2.0",
  "prompt": "Aerial shot of a coastal city at sunset, golden light reflecting off glass skyscrapers, cinematic drone footage",
  "duration": 10,
  "aspect_ratio": "16:9",
  "audio": true
}

Parameterreference

ParameterTypePåkrævetBeskrivelse
modelstrengJaModelidentifikator (f.eks. seedance-2.0)
promptstrengJaScenebeskrivelse, maks. 500 tegn
durationheltalNejVideolængde i sekunder (4-15 for 2.0, standard 8)
aspect_ratiostrengNej16:9, 9:16 eller 1:1 (standard 16:9)
audiobooleanNejInkluder synkroniseret lyd (standard true, kun 2.0)
webhook_urlstrengNejURL til modtagelse af færdiggørelsesnotifikation
metadataobjektNejBrugerdefinerede nøgle-værdi-par, der returneres i resultater

Vellykket svar

{
  "task_id": "task_abc123def456",
  "status": "queued",
  "model": "seedance-2.0",
  "credits_charged": 607,
  "estimated_time": 120,
  "created_at": "2026-04-10T14:30:00Z"
}

Genereringen er asynkron. Du får et task_id med det samme og poller for færdiggørelse (eller bruger webhooks).

Endpointet til billede-til-video

Animér et killebillede med en bevægelsesprompt.

POST /v1/generate/image-to-video
Content-Type: multipart/form-data
FeltTypePåkrævetBeskrivelse
modelstrengJaModelidentifikator
imagefilJaKillebillede (JPEG, PNG, WebP; maks. 10 MB)
promptstrengJaBevægelsesbeskrivelse
durationheltalNejVideolængde i sekunder
aspect_ratiostrengNejOutputbilledformat
audiobooleanNejInkluder lyd (kun Seedance 2.0)
webhook_urlstrengNejWebhook-URL ved færdiggørelse

Foretrækker du ikke at uploade en fil? Send en image_url i stedet:

{
  "model": "seedance-2.0",
  "image_url": "https://example.com/photo.jpg",
  "prompt": "The woman turns her head slowly and smiles, wind gently blowing her hair",
  "duration": 8,
  "aspect_ratio": "16:9"
}

Tjek genereringsstatus

Poll opgave-endpointet for at tjekke fremskridt.

GET /v1/tasks/{task_id}

Svar under behandling

{
  "task_id": "task_abc123def456",
  "status": "processing",
  "progress": 65,
  "model": "seedance-2.0",
  "created_at": "2026-04-10T14:30:00Z",
  "estimated_completion": "2026-04-10T14:31:30Z"
}

Færdigt svar

{
  "task_id": "task_abc123def456",
  "status": "completed",
  "model": "seedance-2.0",
  "result": {
    "video_url": "https://cdn.arteza.ai/outputs/task_abc123def456.mp4",
    "duration": 10,
    "resolution": "1280x720",
    "has_audio": true,
    "file_size": 8542310
  },
  "credits_charged": 607,
  "created_at": "2026-04-10T14:30:00Z",
  "completed_at": "2026-04-10T14:31:28Z"
}

Statusværdier

StatusBetydning
queuedOpgave modtaget, venter på start
processingGenerering i gang
completedVideo klar ved result.video_url
failedGenerering mislykkedes - se feltet error
cancelledOpgave annulleret af bruger

Video-URL'er udløber efter 24 timer. Download og gem dem på din egen infrastruktur med det samme.

Et cinematisk stillbillede fra Seedance 2.0 med API-genereret output

Vil du generere output som dette programmatisk? Du er 30 sekunder fra dit første API-kald. Få din API-nøgle gratis →

Produktionsklart Python-eksempel

Her er et komplet script, der indsender en generering, poller for færdiggørelse og downloader resultatet.

import os
import time
import requests

API_KEY = os.environ["SEEDANCE_API_KEY"]
BASE_URL = "https://api.arteza.ai/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}


def generate_video(prompt, duration=8, aspect_ratio="16:9"):
    """Indsend en tekst-til-video-opgave. Returnerer task_id."""
    response = requests.post(
        f"{BASE_URL}/generate/text-to-video",
        headers=HEADERS,
        json={
            "model": "seedance-2.0",
            "prompt": prompt,
            "duration": duration,
            "aspect_ratio": aspect_ratio,
            "audio": True,
        },
    )
    response.raise_for_status()
    return response.json()["task_id"]


def wait_for_completion(task_id, poll_interval=5, timeout=300):
    """Poll indtil opgaven er færdig. Returnerer result-dict."""
    elapsed = 0
    while elapsed < timeout:
        response = requests.get(f"{BASE_URL}/tasks/{task_id}", headers=HEADERS)
        response.raise_for_status()
        data = response.json()

        if data["status"] == "completed":
            return data["result"]
        if data["status"] == "failed":
            raise RuntimeError(f"Generation failed: {data.get('error')}")

        time.sleep(poll_interval)
        elapsed += poll_interval

    raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")


def download_video(video_url, output_path):
    """Stream videoen til disk."""
    response = requests.get(video_url, stream=True)
    response.raise_for_status()
    with open(output_path, "wb") as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)


if __name__ == "__main__":
    task_id = generate_video(
        prompt="A cat sitting on a windowsill watching rain fall outside, cozy indoor lighting, shallow depth of field",
        duration=10,
    )
    print(f"Task submitted: {task_id}")

    result = wait_for_completion(task_id)
    print(f"Video ready: {result['video_url']}")

    download_video(result["video_url"], "output.mp4")
    print("Downloaded to output.mp4")

JavaScript (Node.js)-eksempel

Den samme arbejdsgang i moderne Node.js med native fetch.

const API_KEY = process.env.SEEDANCE_API_KEY;
const BASE_URL = "https://api.arteza.ai/v1";

async function generateVideo(prompt, duration = 8, aspectRatio = "16:9") {
  const response = await fetch(`${BASE_URL}/generate/text-to-video`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "seedance-2.0",
      prompt,
      duration,
      aspect_ratio: aspectRatio,
      audio: true,
    }),
  });

  if (!response.ok) {
    throw new Error(`HTTP ${response.status}: ${await response.text()}`);
  }
  const data = await response.json();
  return data.task_id;
}

async function waitForCompletion(taskId, pollMs = 5000, timeoutMs = 300000) {
  const start = Date.now();

  while (Date.now() - start < timeoutMs) {
    const response = await fetch(`${BASE_URL}/tasks/${taskId}`, {
      headers: { Authorization: `Bearer ${API_KEY}` },
    });
    const data = await response.json();

    if (data.status === "completed") return data.result;
    if (data.status === "failed") {
      throw new Error(`Generation failed: ${data.error}`);
    }

    await new Promise((resolve) => setTimeout(resolve, pollMs));
  }

  throw new Error(`Task ${taskId} timed out`);
}

// Brug
const taskId = await generateVideo(
  "Timelapse of a flower blooming, macro lens, soft natural lighting",
  12
);
console.log(`Task submitted: ${taskId}`);

const result = await waitForCompletion(taskId);
console.log(`Video ready: ${result.video_url}`);

Billede-til-video i Python

Når du skal uploade et killebillede, bruges multipart/form-data:

def generate_from_image(image_path, prompt, model="seedance-2.0", duration=8):
    """Generér video fra en lokal billedfil."""
    with open(image_path, "rb") as img_file:
        response = requests.post(
            f"{BASE_URL}/generate/image-to-video",
            headers={"Authorization": f"Bearer {API_KEY}"},
            files={"image": img_file},
            data={
                "model": model,
                "prompt": prompt,
                "duration": duration,
                "aspect_ratio": "16:9",
                "audio": "true",
            },
        )
    response.raise_for_status()
    return response.json()["task_id"]

Fejlhåndtering, der holder

API'en bruger standard HTTP-statuskoder med strukturerede fejlsvar.

StatusBetydningAlmindelig årsag
400Ugyldig anmodningUgyldige parametre, prompt for lang
401Ikke autoriseretManglende eller ugyldig API-nøgle
402Betaling påkrævetUtilstrækkelige kreditter
404Ikke fundetUgyldigt opgave-ID
429For mange anmodningerHastighedsgrænse overskredet
500Intern serverfejlProblem på serversiden - prøv igen med backoff

Fejlsvarets struktur

{
  "error": {
    "code": "insufficient_credits",
    "message": "Your account has 8 credits but this generation requires 24 credits.",
    "required_credits": 24,
    "available_credits": 8
  }
}

Anbefalet mønster

try:
    task_id = generate_video(prompt)
except requests.exceptions.HTTPError as e:
    status = e.response.status_code
    if status == 402:
        error = e.response.json()["error"]
        print(f"Need {error['required_credits']} credits, have {error['available_credits']}")
        # Omdirigér brugeren til /pricing
    elif status == 429:
        retry_after = int(e.response.headers.get("Retry-After", 60))
        print(f"Rate limited. Retry after {retry_after}s.")
    else:
        raise

Hastighedsgrænser og bedste praksis i produktion

Grænserne

GrænseVærdi
Anmodninger pr. minut60
Samtidige genereringer5
Maks. promptlængde500 tegn
Maks. billedupload10 MB

Fem praksisser, der betyder noget i produktion

  1. Brug webhooks, ikke polling, i stor skala. Polling spilder API-kald. Webhooks fyrer præcis én gang.
  2. Implementér eksponentiel backoff ved 429-svar. Prøv ikke igen med det samme.
  3. Download video-URL'er hurtigt. De udløber efter 24 timer. Gem dem på dit eget CDN.
  4. Validér input på klientsiden. Fang problemer med promptlængde og filstørrelse, inden du rammer API'en.
  5. Tjek kreditbalancen før batchjobs. En 402 midt i en batch er irriterende. Forespørg /account/credits først.

Webhook-integration

Inkludér webhook_url i din genereringsanmodning, og Arteza sender en POST til den, når opgaven er færdig.

{
  "model": "seedance-2.0",
  "prompt": "...",
  "webhook_url": "https://yourapp.com/api/seedance/webhook"
}

Webhook-payload

{
  "event": "task.completed",
  "task_id": "task_abc123def456",
  "status": "completed",
  "result": {
    "video_url": "https://cdn.arteza.ai/outputs/task_abc123def456.mp4",
    "duration": 10,
    "resolution": "1280x720",
    "has_audio": true
  },
  "metadata": {
    "campaign_id": "summer-2026",
    "variant": "A"
  },
  "timestamp": "2026-04-10T14:31:28Z"
}

Webhook-anmodninger inkluderer en X-Seedance-Signature-header: en HMAC-SHA256-signatur af kroppen signeret med din webhook-hemmelighed. Verificér altid signaturen, inden du behandler hændelser.

Batchgenerering

Når du har brug for flere klip, indsender du dem som en batch og modtager én webhook, når alt er færdigt.

POST /v1/generate/batch
{
  "tasks": [
    {
      "type": "text-to-video",
      "model": "seedance-2.0",
      "prompt": "Scene 1 description...",
      "duration": 8
    },
    {
      "type": "text-to-video",
      "model": "seedance-2.0",
      "prompt": "Scene 2 description...",
      "duration": 10
    },
    {
      "type": "image-to-video",
      "model": "seedance-1.0-pro",
      "image_url": "https://example.com/product.jpg",
      "prompt": "Slow rotation revealing product details",
      "duration": 6
    }
  ],
  "webhook_url": "https://yourapp.com/api/seedance/batch-complete"
}

Opgaver i en batch behandles parallelt op til din samtidige grænse.

🚀

Stop med at læse. Begynd at bygge.

Hvert minut brugt på at læse dokumentation er en video, din pipeline kunne have genereret. Gratis kreditter, intet kort påkrævet.

Kom i gang nu

Fire use cases, der er værd at bygge

1. Produktvideoer til e-handel i stor skala

Automatisér produktanimation for hele dit katalog. Gennemløb din produktdatabase, send et billede-til-video-kald pr. vare, og gem de resulterende URL'er ved siden af produktposten.

products = get_products_from_database()

for product in products:
    task_id = generate_from_image(
        image_path=product["hero_image"],
        prompt=f"Slow 360 rotation of {product['name']}, studio lighting, white background",
        model="seedance-1.0-pro",
        duration=6,
    )
    save_task_mapping(product["id"], task_id)

Kombinér dette med guide til e-handelsvideo for tips til arbejdsgangen.

2. Automatiserede pipelines til sociale medier

Send populære emner ind i promptgeneratorer, generér daglig vertikal video, og push til en godkendelseskø:

for topic in get_trending_topics():
    prompt = build_prompt(topic)
    task_id = generate_video(prompt, duration=6, aspect_ratio="9:16")
    queue_for_review(task_id, topic)

3. Marketing-A/B-test

Generér flere kreative varianter med metadatasporing:

variants = [
    "Product hero shot with warm lighting, luxury feel",
    "Product hero shot with bright lighting, energetic feel",
    "Product hero shot with moody lighting, premium feel",
]

for i, variant in enumerate(variants):
    generate_video(
        prompt=variant,
        duration=6,
        metadata={"variant": chr(65 + i), "campaign": "spring-launch"},
    )

Feltet metadata returneres i færdiggørelsespayloaden, så du automatisk kan sende resultater til den rette kampagnebøtte.

4. Interaktive applikationer

Byg videogenerering direkte ind i din egen app. En bruger skriver en prompt, din backend kalder API'en, og webhook'en leverer det færdige klip. Hele løkken tager ca. 90 sekunder.

Bundlinjen

Arteza API'en er enkel at integrere og produktionsklar. Simpel godkendelse, rene REST-semantikker, webhooks til asynkront arbejde og batch-endpoints til skalering. Har du brugt Stripe eller en anden moderne REST-API, vil du føle dig hjemme på ti minutter.

For priser og kreditoptimering, se prisoversigt. For den bredere produktoversigt, læs komplet guide til Seedance 2.0.

Klar til at begynde at bygge? Opret din gratis konto →

Læs videre: Komplet guide til Seedance 2.0 • Prisoversigt • Seedance 2.0 vs Seedance 1.0 • Seedance 2.0 vs Runway Gen-4

Prøv Seedance 2.0 - Lige nu

5 gratis generationer · Intet kreditkort påkrævet

Åbn Seedance 2.0-appen

Relaterede værktøjer

AI-videogeneratorAI VideostudioAI Voice-over og musikgeneratorAI-billedgenerator

Relaterede indlæg

Technical

Kvalitet i AI-videogenerering: opløsning, FPS og varighed forklaret

Technical

ByteDance Seed AI-modeller forklaret: Seedance, Seedream, OmniHuman

Technical

Fremtiden for AI-video: forudsigelser for 2026-2027

Technical

Hvad er AI-videogenerering? Sådan fungerer tekst-til-video AI i 2026

Tidligere: Seedance 2.0: komplet guide til ByteDances mest kraftfulde AI-videogeneratorNæste: Seedance 1.0 Pro til bryllupsvideografer: AI-forbedring