Suno تصور الموسيقى
استخدم نقطة نهاية تصوير الموسيقى لإنشاء مهمة غير متزامنة.
نظرة عامة
استخدم نقطة نهاية تصوير الموسيقى مع المدخلات المطلوبة. استخدم معرّف المهمة المُعاد لاسترداد حالتها، أو أدخل callback_url للتسليمات الموثقة أدناه.
البدء السريع
- أنشئ مفتاح API واضبطه كـ RUNAPI_API_KEY.
- أرسل طلب POST يطابق نص الطلب مخطط الطلب.
- احفظ معرّف المهمة المُعاد، ثم استطلع الحالة حتى تبلغ حالة نهائية أو تعالج عمليات الاستدعاء الموثقة أدناه.
نقطة النهاية
- عنوان URL الأساسي
https://runapi.ai- إصدار API
v1- المصادقة
Authorization: Bearer YOUR_API_TOKEN
النماذج المدعومة
افتح صفحة النموذج للاطلاع على التسعير الحالي وحدود المعدل وتفاصيل الاستخدام التجاري.
مخطط الطلب
أرسل الحقول الموثَّقة فقط. عند توفيره، يتلقى callback_url عمليات تسليم المهام الموثَّقة أدناه.
جسم الطلب5 حقل
audio_idstringمعرّف الصوت ضمن المهمة المصدر.
authorstringاسم المؤلف الذي يظهر في الفيديو.
callback_urlstringرابط Webhook لإشعارات غير متزامنة.
domain_namestringعلامة مائية باسم النطاق.
task_idstringمعرّف المهمة المصدر.
إنشاء قبول
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
},
"task_replayed": {
"type": "boolean"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
الاستطلاع قيد المعالجة
GET /api/v1/suno/visualize_music/:id
مخطط الاستجابة
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
},
"video_url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
اكتمل الاستطلاع
GET /api/v1/suno/visualize_music/:id
مخطط الاستجابة
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
},
"video_url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"id",
"status",
"video_url",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "completed",
"video_url": "https://file.runapi.ai/reference-music-video.mp4"
}
فشل الاستطلاع
GET /api/v1/suno/visualize_music/:id
مخطط الاستجابة
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"error": {
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"error": "Task processing failed.",
"id": "tsk_reference_demo",
"status": "failed"
}
استدعاء العميل: مكتمل
POST callback_url
مخطط الاستجابة
{
"properties": {
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
},
"video_url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"id",
"status",
"video_url"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"id": "tsk_reference_demo",
"status": "completed",
"video_url": "https://file.runapi.ai/reference-music-video.mp4"
}
استدعاء العميل: فشل
POST callback_url
مخطط الاستجابة
{
"properties": {
"error": {
"oneOf": [
{
"type": "string"
},
{
"properties": {
"code": {
"type": "string"
},
"limit_cents": {
"type": "integer"
},
"message": {
"type": "string"
},
"reset_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"used_cents": {
"type": "integer"
},
"window": {
"enum": [
"1h",
"1d",
"7d",
"daily",
"weekly",
"monthly",
"lifetime"
],
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object",
"unevaluatedProperties": false
}
]
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": {
"code": "generation_failed",
"message": "Task processing failed."
},
"id": "tsk_reference_demo",
"status": "failed"
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Authentication required"
}
الأخطاء
GET /api/v1/suno/visualize_music/:id
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Authentication required"
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"oneOf": [
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "ملخص التحقق القابل للقراءة البشرية.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "رسائل التحقق مفتاحها حقل الطلب العام، مع مصفوفة من السلاسل القابلة للقراءة البشرية لكل حقل.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
مثال على الاستجابة
{
"error": "Validation failed",
"errors": {
"task_id": [
"is required"
]
}
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Insufficient balance"
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "API key credit limit exceeded"
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "The request uses features that are not supported for the selected model"
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Rate limit reached. Please retry later."
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Service under maintenance, please try again later"
}
الأخطاء
POST /api/v1/suno/visualize_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "The request timed out"
}
الأخطاء
GET /api/v1/suno/visualize_music/:id
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Task with id 'tsk_reference_demo' not found"
}
نماذج الأكواد المولَّدة
استخدم cURL مباشرةً، أو ثبّت SDK للغة البرمجة التي تستخدمها. كل نموذج يُرسل الطلب الذي تم التحقق من صحته كما هو موضح في هذا المرجع.
التثبيت
pip install runapi-suno
import os
from runapi.suno import SunoClient
client = SunoClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.visualize_music.create(
task_id="tsk_source_music",
audio_id="audio_reference",
author="RunAPI Studio"
)