إنشاء موسيقى
POST/v1/music
مهمة غير متزامنة مثل الفيديو: تبدأها، ثم تتابعها، ثم تنزّل الملف.
النماذج: optes-music-1
معاملات الطلب
application/jsonmodelstringمطلوبoptes-music-1.promptstringمطلوبالأسلوب والآلات والمزاج.
durationintegerاختياريبالثواني، من 10 إلى 240.
instrumentalbooleanاختياريمقطوعة بلا كلمات.
lyricsstringاختياريكلمات الأغنية.
يرجع
كائن music بالحالات نفسها: queued ثم in_progress ثم completed أو failed. المهمة الفاشلة لا تُحسب.
حالة المهمة
GET/v1/music/{id}
يرجع كائن music بحالته الحالية.
تنزيل الملف
GET/v1/music/{id}/content
يرجع ملف الصوت بعد اكتمال المهمة.
curl https://api.optes3.com/v1/music \ -H "Authorization: Bearer $OPTES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "optes-music-1", "prompt": "موسيقى عود هادئة مع إيقاع خفيف، لافتتاحية لعبة", "duration": 90, "instrumental": true }'import os, httpxH = {"Authorization": f"Bearer {os.environ['OPTES_API_KEY']}"}API = "https://api.optes3.com/v1"job = httpx.post(f"{API}/music", headers=H, json={ "model": "optes-music-1", "prompt": "موسيقى عود هادئة مع إيقاع خفيف، لافتتاحية لعبة", "duration": 90, "instrumental": True,}).json()# then poll GET /v1/music/{id} and download /v1/music/{id}/contentconst API = "https://api.optes3.com/v1";const H = { Authorization: `Bearer ${process.env.OPTES_API_KEY}` };const job = await fetch(`${API}/music`, { method: "POST", headers: { ...H, "Content-Type": "application/json" }, body: JSON.stringify({ model: "optes-music-1", prompt: "عود هادئ", duration: 90, instrumental: true }),}).then((r) => r.json());// then poll GET /v1/music/{id} and download /v1/music/{id}/contentResponse
{ "id": "music_Q81a", "object": "music", "model": "optes-music-1", "status": "queued", "duration": 90}الأسعار بالدولار الأمريكي، وهي أوّلية حتى الإطلاق. الواجهة البرمجية والتسجيل والمفاتيح تُفتح يوم الإطلاق.