Kling Professional Video

Επαγγελματική δημιουργία βίντεο με προηγμένο έλεγχο κίνησης. Μοντέλα από v1 έως v2.1 με λειτουργίες Standard και Pro.

✓ Βίντεο έως 10 δευτερόλεπτα

✓ Λειτουργίες Pro και Standard

✓ Έλεγχος κάμερας

✓ Ανάλυση 1080p

Ταυτοποίηση

Για να αποκτήσετε πρόσβαση στο Kling μέσω του Doitong API, χρησιμοποιήστε το κλειδί API της Doitong. Συμπεριλάβετε το στο GraphQL mutation ή στα headers του REST API.

Σημαντικό: Διατηρήστε το κλειδί API της Doitong ασφαλές και μην το εκθέτετε ποτέ σε κώδικα client-side. Πραγματοποιείτε πάντα τις κλήσεις API από τον διακομιστή σας (backend).
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

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

Γρήγορη εκκίνηση

Ξεκινήστε με το Kling API σε λίγα μόλις λεπτά. Ακολουθήστε αυτά τα απλά βήματα για να δημιουργήσετε το πρώτο σας text to video.

Βήμα 1: Αποκτήστε το κλειδί API

Εγγραφείτε για έναν λογαριασμό Doitong και μεταβείτε στο ταμπλό σας για να δημιουργήσετε ένα κλειδί API.

Βήμα 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": "kling",
        "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: 'kling',
        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": "kling",
        "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": "kling",
    "input": {
      "text": "A serene landscape with mountains and a lake at sunset"
    },
    "options": {
      "duration": 5,
      "aspectRatio": "16:9",
      "version": "2.1-master",
      "quality": "high"
    }
  }
}

Τιμολόγηση

Το Kling API χρησιμοποιεί ένα μοντέλο τιμολόγησης βάσει πιστώσεων. Οι πιστώσεις καταναλώνονται ανάλογα με την πολυπλοκότητα και τη διάρκεια του περιεχομένου που δημιουργείται.

Λειτουργία Πιστώσεις Περιγραφή
Standard Mode 100-200 Πιστώσεις Βίντεο 5-10 δευτερολέπτων σε τυπική ποιότητα
Pro Mode 300-500 Πιστώσεις Βίντεο 5-10 δευτερολέπτων σε επαγγελματική ποιότητα

Endpoints API

Το Kling API είναι διαθέσιμο μέσω του ενοποιημένου GraphQL endpoint μας.

GraphQL Endpoint

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

REST Endpoint

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

Παράμετροι

Διαθέσιμες παράμετροι για αιτήματα Kling API:

Παράμετρος Τύπος Υποχρεωτικό Περιγραφή
service String Yes Αναγνωριστικό υπηρεσίας: "kling"
prompt String Yes Κειμενική περιγραφή αυτού που θέλετε να δημιουργήσετε
duration Integer No Διάρκεια βίντεο σε δευτερόλεπτα (προεπιλογή: 5)
aspectRatio String No Αναλογία διαστάσεων: "16:9", "9:16", "1:1" (προεπιλογή: "16:9")
version String No Model version: "1.0", "1.5", "1.6", "2.0", "2.1", "2.1-master"
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
      }
    }
  ]
}

Webhooks

Λάβετε ειδοποιήσεις σε πραγματικό χρόνο όταν ολοκληρωθεί η δημιουργία του text to video.

Ρύθμιση Webhooks

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

Payload Webhook

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

Ασφάλεια Webhook

Όλα τα αιτήματα webhook περιλαμβάνουν μια κεφαλίδα υπογραφής για επαλήθευση:

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

Όρια ρυθμού

Για τη διασφάλιση της δίκαιης χρήσης και της σταθερότητας του συστήματος, ισχύουν τα ακόλουθα όρια:

Πλάνο Αιτήματα/Λεπτό Ταυτόχρονες εργασίες Ημερήσιο όριο
Δωρεάν 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Προσαρμοσμένο Προσαρμοσμένο Απεριόριστο
Headers ορίων ρυθμού: Ελέγξτε τα headers της απόκρισης για την τρέχουσα κατάσταση των ορίων σας:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Βέλτιστες πρακτικές

1. Βελτιστοποιήστε τα Prompts σας

Γράψτε σαφή και περιγραφικά prompts για καλύτερα αποτελέσματα:

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

2. Διαχείριση ασύγχρονης επεξεργασίας

Η δημιουργία είναι ασύγχρονη. Εφαρμόστε κατάλληλο polling ή 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. Ανάκτηση από σφάλματα

Εφαρμόστε λογική επαναπροσπάθειας με εκθετική καθυστέρηση (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

Είστε έτοιμοι να ξεκινήσετε;

Γίνετε μέλος χιλιάδων προγραμματιστών που χρησιμοποιούν το Kling API για να δημιουργήσουν εκπληκτικό περιεχόμενο

Αποκτήστε κλειδί API τώρα Δείτε την τιμολόγηση