Luma AI Dream Machine
توليد فيديو فني بأسلوب سريالي فريد وتأثيرات إبداعية.
✓ أسلوب سريالي
✓ تأثيرات إبداعية
✓ معالجة سريعة
✓ جماليات فريدة
المصادقة
للوصول إلى Luma Dream Machine عبر واجهة برمجة تطبيقات Doitong، استخدم مفتاح API الخاص بك. قم بتضمينه في طلب Mutation الخاص بـ GraphQL أو في ترويسات REST API.
// GraphQL Header
{
"Authorization": "Bearer YOUR_API_KEY"
}
// REST Header
"X-API-Key": "YOUR_API_KEY"
البدء السريع
ابدأ مع Luma Labs API في دقائق معدودة. اتبع هذه الخطوات البسيطة لإنشاء أول text to video لك.
الخطوة 1: احصل على مفتاح API
سجل للحصول على حساب Doitong وانتقل إلى لوحة التحكم لإنشاء مفتاح API الخاص بك.
الخطوة 2: قم بإجراء طلبك الأول
استخدم أحد أمثلة الكود أدناه لإجراء أول استدعاء لواجهة برمجة التطبيقات.
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": "luma",
"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: 'luma',
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": "luma",
"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": "luma",
"input": {
"text": "A serene landscape with mountains and a lake at sunset"
},
"options": {
"duration": 5,
"aspectRatio": "16:9",
"version": "dream-machine",
"quality": "high"
}
}
}
الأسعار
يعتمد Luma Labs API نموذج تسعير قائم على الرصيد. يتم استهلاك الرصيد بناءً على تعقيد ومدة المحتوى الذي يتم إنشاؤه.
| الميزة | الرصيد | الوصف |
|---|---|---|
| الوضع القياسي | 100-200 الرصيد | فيديو مدته 5-10 ثوانٍ بجودة قياسية |
| الوضع الاحترافي | 300-500 الرصيد | فيديو مدته 5-10 ثوانٍ بجودة احترافية |
نقاط نهاية API
تتوفر خدمة Luma Labs API من خلال نقطة نهاية GraphQL الموحدة الخاصة بنا.
نقطة نهاية GraphQL
POST https://api.doitong.com/graphql
نقطة نهاية REST
POST https://api.doitong.com/v1/text_to_video
المعاملات
المعاملات المتاحة لطلبات Luma Labs API:
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
service |
نص (String) | Yes | معرف الخدمة: "luma" |
prompt |
نص (String) | Yes | وصف نصي للمحتوى المراد إنشاؤه |
duration |
عدد صحيح (Integer) | No | مدة الفيديو بالثواني (الافتراضي: 5) |
aspectRatio |
نص (String) | No | نسبة العرض إلى الارتفاع: "16:9"، "9:16"، "1:1" (الافتراضي: "16:9") |
version |
نص (String) | No | Model version: "dream-machine" |
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"
}
}
}
معالجة الأخطاء
تستخدم واجهة برمجة التطبيقات رموز حالة 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 الخاصة بك.
إعداد الويب هوك
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": "luma",
"createdAt": "2024-01-01T00:00:00Z",
"completedAt": "2024-01-01T00:01:00Z",
"metadata": {
"duration": 5,
"width": 1920,
"height": 1080
}
}
أمان الويب هوك
تتضمن جميع طلبات الويب هوك ترويسة توقيع للتحقق:
X-Doitong-Signature: sha256=abc123...
حدود معدل الاستخدام
لضمان الاستخدام العادل واستقرار النظام، تُطبق حدود المعدل التالية:
| الخطة | الطلبات/الدقيقة | المهام المتزامنة | الحد اليومي |
|---|---|---|---|
| مجاني | 10 | 1 | 100 |
| للمبتدئين | 30 | 3 | 1,000 |
| احترافي | 60 | 10 | 10,000 |
| للمؤسسات | مخصص | مخصص | غير محدود |
X-RateLimit-Limit: Maximum requests per windowX-RateLimit-Remaining: Requests remainingX-RateLimit-Reset: Window reset timestamp
أفضل الممارسات
1. تحسين الأوامر (Prompts)
اكتب أوامر واضحة ووصفية للحصول على أفضل النتائج:
- 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
هل أنت مستعد للبدء؟
انضم إلى آلاف المطورين الذين يستخدمون Luma Labs API لإنشاء محتوى مذهل