Runway шығармашылық жиынтығы

Gen-2, Gen-3 және Gen4 модельдерімен кәсіби кескін анимациясы. Кино сапасындағы нәтижелер.

✓ Gen-2, Gen-3, Gen4 модельдері

✓ Кескін анимациясы

✓ Қозғалысты басқару

✓ HD сапасы

Аутентификация

Runway қызметіне Doitong API арқылы қол жеткізу үшін Doitong API кілтін пайдаланыңыз. Оны GraphQL мутациясына немесе REST API тақырыптарына (headers) қосыңыз.

Маңызды: Doitong API кілтін қауіпсіз сақтаңыз және оны ешқашан клиенттік кодта көрсетпеңіз. API сұрауларын әрдайым өзіңіздің backend серверіңізден жасаңыз.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

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

Жылдам бастау

Runway Gen4 API қызметімен бірнеше минутта жұмысты бастаңыз. Алғашқы text to video жасау үшін осы қарапайым қадамдарды орындаңыз.

1-қадам: API кілтін алу

Doitong тіркелгісіне тіркеліп, API кілтін жасау үшін бақылау тақтасына (dashboard) өтіңіз.

2-қадам: Алғашқы сұрауды жасау

Алғашқы API сұрауын жасау үшін төмендегі код мысалдарының бірін пайдаланыңыз.

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": "runway",
        "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: 'runway',
        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": "runway",
        "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": "runway",
    "input": {
      "text": "A serene landscape with mountains and a lake at sunset"
    },
    "options": {
      "duration": 5,
      "aspectRatio": "16:9",
      "version": "gen-4",
      "quality": "high"
    }
  }
}

Бағалар

Runway Gen4 API кредиттік баға үлгісін пайдаланады. Кредиттер жасалған мазмұнның күрделілігі мен ұзақтығына байланысты жұмсалады.

Мүмкіндік Кредиттер Сипаттама
Стандартты режим 100-200 Кредиттер Стандартты сападағы 5-10 секундтық видео
Pro режимі 300-500 Кредиттер Кәсіби сападағы 5-10 секундтық видео

API соңғы нүктелері

Runway Gen4 API біздің бірыңғай GraphQL соңғы нүктесі арқылы қолжетімді.

GraphQL соңғы нүктесі

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

REST соңғы нүктесі

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

Параметрлер

Runway Gen4 API сұраулары үшін қолжетімді параметрлер:

Параметр Түрі Міндетті Сипаттама
service Жол (String) Yes Қызмет идентификаторы: "runway"
prompt Жол (String) Yes Жасалатын нәрсенің мәтіндік сипаттамасы
duration Бүтін сан (Integer) No Видео ұзақтығы секундпен (әдепкі: 5)
aspectRatio Жол (String) No Пропорция: "16:9", "9:16", "1:1" (әдепкі: "16:9")
version Жол (String) No Model version: "gen-2", "gen-3", "gen-4"
webhookUrl Жол (String) No Хабарландыруларды алуға арналған URL

Жауап форматы

Барлық API жауаптары бірыңғай форматқа сәйкес келеді:

Сәтті жауап

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

Аяқталған жауап

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

Қателерді өңдеу

API стандартты HTTP күй кодтарын пайдаланады және егжей-тегжейлі қате хабарларын қайтарады.

Жиі кездесетін қате кодтары

Күй коды Қате түрі Сипаттама
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

Қате жауабының форматы

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

Вебхуктар

text to video жасау аяқталған кезде нақты уақыт режимінде хабарландырулар алыңыз.

Вебхуктарды баптау

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

Вебхук деректері (payload)

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

Вебхук қауіпсіздігі

Барлық вебхук сұраулары тексеру үшін қолтаңба тақырыбын (signature header) қамтиды:

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

Сұрау шектеулері

Әділ пайдалану мен жүйе тұрақтылығын қамтамасыз ету үшін келесі шектеулер қолданылады:

Тариф Минутына сұраулар Бір мезгілдегі тапсырмалар Күндік шектеу
Тегін 10 1 100
Бастапқы 30 3 1,000
Pro 60 10 10,000
Enterprise Арнайы Арнайы Шексіз
Шектеу тақырыптары: Ағымдағы шектеу күйін жауап тақырыптарынан тексеріңіз:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Үздік тәжірибелер

1. Промптарды оңтайландыру

Жақсы нәтиже алу үшін анық, сипаттамалық промптар жазыңыз:

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

2. Асинхронды өңдеуді басқару

Жасау процесі асинхронды. Тиісті сұрау (polling) немесе вебхуктарды енгізіңіз:

// 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. Қателерден кейін қалпына келтіру

Экспоненциалды күту (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. Кредиттердің жұмсалуын бақылау

Жұмыстың үзілмеуі үшін кредиттердің жұмсалуын қадағалаңыз:

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

Бастауға дайынсыз ба?

Керемет мазмұн жасау үшін Runway Gen4 API қызметін пайдаланатын мыңдаған әзірлеушілерге қосылыңыз

API кілтін алу Бағаларды көру