Seedance Dance Generation

Sinteżi taż-żfin avvanzata b'appoġġ għal koreografija ta' bosta persuni. Oħloq vidjows taż-żfin sinkronizzati minn filmati ta' referenza.

✓ Sinteżi taż-żfin

✓ Bosta persuni

✓ Koreografija

✓ Ibbażat fuq referenza

Awtentikazzjoni

Biex taċċessa Seedance permezz tad-Doitong API, uża l-API key tiegħek ta' Doitong. Inkludiha fil-GraphQL mutation jew fl-headers tar-REST API.

Importanti: Żomm l-API key tiegħek ta' Doitong sigura u qatt m'għandek tikxifha f'kodiċi client-side. Dejjem agħmel is-sejħiet tal-API mis-server tal-backend tiegħek.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Bidu Rapidu

Ibda uża Seedance API fi ftit minuti biss. Segwi dawn il-passi sempliċi biex tiġġenera l-ewwel text to video tiegħek.

Pass 1: Ikseb l-API Key tiegħek

Irreġistra għal kont ta' Doitong u mur fid-dashboard tiegħek biex tiġġenera API key.

Pass 2: Agħmel l-ewwel talba tiegħek

Uża wieħed mill-eżempji tal-kodiċi hawn taħt biex tagħmel l-ewwel sejħa tal-API tiegħek.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: unique-request-id-123" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "VIDEO",
        "provider": "seedance",
        "input": {
          "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
          "duration": 5,
          "aspectRatio": "16:9"
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY',
    'Idempotency-Key': 'unique-request-id-123'
  },
  body: JSON.stringify({
    query: `
      mutation Generate($input: GenerateInput!) {
        generate(input: $input) {
          id
          status
          type
          provider
          url
          metadata
          creditCost
        }
      }
    `,
    variables: {
      input: {
        type: 'VIDEO',
        provider: 'seedance',
        input: {
          text: 'A serene landscape with mountains and a lake at sunset'
        },
        options: {
          duration: 5,
          aspectRatio: '16:9'
        }
      }
    }
  })
});

const data = await response.json();
console.log('Result:', data.data.generate);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "VIDEO",
        "provider": "seedance",
        "input": {
            "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
            "duration": 5,
            "aspectRatio": "16:9"
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "VIDEO",
    "provider": "seedance",
    "input": {
      "text": "A serene landscape with mountains and a lake at sunset"
    },
    "options": {
      "duration": 5,
      "aspectRatio": "16:9",
      "version": "1.0-pro",
      "quality": "high"
    }
  }
}

Prezzijiet

Seedance API juża mudell ta' prezzijiet ibbażat fuq il-krediti. Il-krediti jintużaw skont il-kumplessità u t-tul tal-kontenut iġġenerat.

Karatteristika Krediti Deskrizzjoni
Modalità Standard 100-200 Krediti Vidjow ta' 5-10 sekondi bi kwalità standard
Modalità Pro 300-500 Krediti Vidjow ta' 5-10 sekondi bi kwalità professjonali

API Endpoints

Seedance API huwa disponibbli permezz tal-endpoint unifikat tagħna tal-GraphQL.

Endpoint tal-GraphQL

POST https://api.doitong.com/graphql

Endpoint tar-REST

POST https://api.doitong.com/v1/text_to_video

Parametri

Parametri disponibbli għal talbiet ta' Seedance API:

Parametru Tip Meħtieġ Deskrizzjoni
service String Yes Identifikatur tas-servizz: "seedance"
prompt String Yes Deskrizzjoni tat-test ta' dak li għandu jiġi ġġenerat
duration Integer No Tul tal-vidjow f'sekondi (default: 5)
aspectRatio String No Aspect ratio: "16:9", "9:16", "1:1" (default: "16:9")
version String No Model version: "1.0-lite", "1.0-pro"
webhookUrl String No URL biex tirċievi notifiki meta jitlesta l-proċess

Format tar-Rispons

Ir-rispons kollu tal-API isegwi format konsistenti:

Rispons b'Suċċess

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Rispons Mitmum

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
      "duration": 5,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Ġestjoni tal-Iżbalji

L-API tuża kodiċijiet standard tal-istatus HTTP u tirritorna messaġġi ta' żball dettaljati.

Kodiċijiet ta' Żball Komuni

Kodiċi tal-Istatus Tip ta' Żball Deskrizzjoni
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Format tar-Rispons ta' Żball

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Webhooks

Irċievi notifiki f'ħin reali meta l-ġenerazzjoni tal-text to video tiegħek tkun lesta.

Konfigurazzjoni tal-Webhooks

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Webhook Payload

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
  "service": "seedance",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": 5,
    "width": 1920,
    "height": 1080
  }
}

Sigurtà tal-Webhook

It-talbiet kollha tal-webhook jinkludu header ta' firma għall-verifika:

X-Doitong-Signature: sha256=abc123...

Limiti tar-Rata

Biex niżguraw użu ġust u stabbiltà tas-sistema, japplikaw il-limiti tar-rata li ġejjin:

Pjan Talbiet/Minuta Xogħlijiet Konkorrenti Limitu ta' Kuljum
B'xejn 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Personalizzat Personalizzat Bla limitu
Headers tal-Limitu tar-Rata: Iċċekkja l-headers tar-rispons għall-istatus tal-limitu attwali:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

L-Aħjar Prattiki

1. Ottimizza l-Prompts tiegħek

Ikteb prompts ċari u deskrittivi għall-aħjar riżultati:

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Immaniġġja l-Ipproċessar Async

Il-ġenerazzjoni hija asinkronika. Implimenta polling xieraq jew webhooks:

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Irkupru mill-Iżbalji

Implimenta loġika ta' retry b'exponential backoff:

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Immonitorja l-Użu tal-Krediti

Segwi l-użu tal-krediti tiegħek biex tevita interruzzjonijiet:

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Lest biex tibda?

Ingħaqad ma' eluf ta' żviluppaturi li qed jużaw Seedance API biex joħolqu kontenut tal-għaġeb

Ikseb API Key issa Ara l-Prezzijiet