التوثيق
API

الفيديو والموسيقى

Markdown

توليد مقاطع الفيديو والموسيقى: ينشئ الطلب مهمة، وتُسترجع النتيجة باستخدام معرّفها.

الدليل الكامل
POSThttps://api.ailoot.ai/v1/videos
الفيديو والموسيقى
# احتفظ بـ Request ID؛ يستخدمه الدعم للعثور على طلبك.
# أنشئ المهمة مرة واحدة؛ الحلقة أدناه تقرأ حالتها فقط.
curl --fail-with-body --max-time 120 -D video-create-headers-v1.txt \
  https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-imagine-video-1.5","prompt":"بحيرة هادئة","seconds":"8","size":"1280x720"}' \
  -o video-create-v1.json || exit 1
VIDEO_ID=$(jq -er '.id // .request_id' video-create-v1.json) || exit 1
VIDEO_STATUS=""
# تقرأ هذه الحلقة المهمة الأصلية فقط، ولا تُعيد إرسال طلب إنشائها مطلقًا.
for ATTEMPT in $(seq 1 60); do
  curl --fail-with-body --max-time 30 \
    "https://api.ailoot.ai/v1/videos/$VIDEO_ID" \
    -H "Authorization: Bearer $AILOOT_API_KEY" \
    -o video-status-v1.json || exit 1
  VIDEO_STATUS=$(jq -r '.status // empty' video-status-v1.json)
  # result_pending_check: true (تظل الحالة in_progress): جارٍ التحقّق من النتيجة. توقّف؛ لا تُنشئ المهمة مرة أخرى مطلقًا.
  if jq -e '.result_pending_check == true' video-status-v1.json >/dev/null; then
    cat video-status-v1.json
    echo "The result is being checked. Do not create the job again: check GET /v1/videos/$VIDEO_ID later or contact support with the Request ID." >&2
    exit 1
  fi
  case "$VIDEO_STATUS" in
    done|completed) break ;;
    queued|in_progress|pending|processing) sleep 5 ;;
    # failed أو أي حالة أخرى: اعرضها وتوقّف. لا تُنشئ المهمة مرة أخرى مطلقًا.
    *) cat video-status-v1.json; exit 1 ;;
  esac
done
case "$VIDEO_STATUS" in
  done|completed) ;;
  *) echo "The job is not finished yet (status: ${VIDEO_STATUS:-none}). Check it later: GET /v1/videos/$VIDEO_ID" >&2; exit 1 ;;
esac
curl --fail-with-body --max-time 120 -L --max-redirs 3 \
  "https://api.ailoot.ai/v1/videos/$VIDEO_ID/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video-v1.mp4
# بعد انتهاء مهلة طلب الإنشاء، تحقّق من Request ID في سجل الاستخدام قبل تشغيل هذا السكربت مجددًا.
الرد · مختصر
// معرّف المهمة في الحقل id أو request_id
{ "id": "…", … }

// تختلف الصيغة بحسب النموذج: خذ المعرّف
// من استجابة الإنشاء كما هو.

المصادقة

  • Authorizationheaderمطلوب

    المفتاح بصيغة Bearer sk-…. يمكن أيضاً استخدام الترويسات x-api-key أو x-goog-api-key.

الفيديو: جسم الطلب

  • modelstringمطلوب

    نموذج الفيديو: google/omni-1.1-flash, grok-imagine-video, happyhorse-1.1-t2v, MiniMax-Hailuo-2.3, grok-imagine-video-1.5, happyhorse-1.1-r2v, grok-imagine-video-1.5-preview, happyhorse-1.1-i2v.

  • promptstringمطلوب

    وصف مقطع الفيديو.

  • duration / secondsinteger / stringاختياري

    تختلف المدة بحسب العائلة: Grok من 1 إلى 15 ثانية، وMiniMax ‏6/10 ثوانٍ بدقة 768P أو 6 ثوانٍ بدقة 1080P، وHappyHorse من 3 إلى 15؛ وGoogle Omni ‏4/6/8/10. لا تنقل حقول عائلة إلى عائلة أخرى.

  • resolution / sizestringاختياري

    Grok: ‏480p/720p/1080p (يدعم video-1.5 دقة 1080p)، أو size بقيم 1280x720/720x1280/1920x1080/1080x1920. ‏MiniMax: ‏768P/1080P. ‏HappyHorse: ‏480P/720P/1080P. ‏Google Omni: ‏360p/720p.

  • image / first_frame_image / image_urlsstring / arrayاختياري

    تختلف حقول الصور المصدرية بحسب العائلة والوضع. يتطلب MiniMax Fast حقل first_frame_image. ‏HappyHorse t2v يعمل دون images؛ وi2v يتطلب صورة واحدة بالضبط دون ratio؛ وr2v يقبل من 1 إلى 9 صور.

يتضمن الرد معرّف المهمة (الحقل id أو request_id). استخدمه كما هو دون تحليله، فالصيغة تختلف بحسب النموذج. الحالة والملف الجاهز:

GEThttps://api.ailoot.ai/v1/videos/{id}
GEThttps://api.ailoot.ai/v1/videos/{id}/content

تعمل العناوين نفسها أيضاً بالبادئة /v1/videos/generations/{id}. تختلف حالة المهمة المكتملة وحقول الرد بحسب النموذج؛ اعتمد على حقل الحالة واسترجع الملف عبر /content.

الإنشاء ← الحالة ← التنزيل

احفظ رد الإنشاء وRequest ID الخاص به. في MiniMax/HappyHorse تدل على الاكتمال القيمة status: completed، ويتضمن الرد content_url, data[] وusage. في Grok تكون status: done مع video.url. يعيد Google Omni ‏202 queued، ثم in_progress مع Retry-After، ثم completed أوpartial/content_revoked. لا تعتبر كل رد 200 فيديو جاهزاً. إذا احتوى رد الحالة على result_pending_check: true (status بينما تكون in_progress)، فالنتيجة قيد التحقق. لا تنشئ المهمة مجدداً؛ تحقق منها لاحقاً عبر GET /v1/videos/{id} أو تواصل مع الدعم مع إرفاق Request ID.

/content قد يعيد MP4 مباشرةً أو يعيد التوجيه إلى ملف ذي رابط موقّع. إذا تضمن الرد عدة نتائج في data[]، فاحفظ كل نتيجة: تُحسب تكلفة جميع النتائج التي تم تسليمها. لا يمكن إلغاء مهمة الفيديو أو حذفها عبر API. حذف الملف الجاهز يغلق الوصول إليه، لكنه لا يلغي التوليد.

تُحسب التكلفة بحسب ثواني الفيديو الجاهز بالدقة المحددة أو لكل مقطع، كما هو موضح في الكتالوج. تُحجز التكلفة الكاملة عند إنشاء المهمة.

الموسيقى

POSThttps://api.ailoot.ai/v1/music/generations
  • modelstringمطلوب

    google/lyria, google/lyria-3-clip-preview.

  • promptstringمطلوب

    وصف المقطوعة: النوع الموسيقي والآلات والمزاج.

في الرد، data[] — روابط إلى المقاطع الجاهزة. قد يعيد النموذج عدة مقاطع لطلب واحد؛ وتُحسب تكلفة كل مقطع تم تسليمه.

هل لديك أسئلة أخرى؟ أرسل Request ID ووصفاً للمشكلة وسنساعدك على فهمها.مراسلة الدعم