API كشف موسيقى الذكاء الاصطناعي — دليل المطور الكامل 2026
إذا كنت تبني DSP أو موزّعاً أو منصة تقديم A&R أو أي أداة تحتاج إلى وضع علامات على الموسيقى المولّدة بالذكاء الاصطناعي برمجياً، فأنت بحاجة إلى API. يرشدك هذا الدليل عبر كل شيء: المصادقة، نقاط النهاية، أمثلة الكود بلغة Python وNode.js وJava، حدود المعدل، تنسيقات الاستجابة، معالجة الأخطاء، ونصائح الإنتاج.
سنستخدم REST API الخاص بـ AI Song Checker في أمثلة الكود — فهو مجاني للبدء (بدون بطاقة ائتمان)، ويدعم جميع محركات الموسيقى الذكية الرئيسية (Suno، Udio، Riffusion، ElevenLabs Music، MusicGen، Stable Audio)، ويعيد بيانات JSON غنية تشمل درجات الثقة وإسناد المنصة.
لماذا تدمج عبر API بدل واجهة الاستخدام
- التوسّع: تحليل آلاف المقاطع دفعياً في الساعة
- الأتمتة: الدمج في سير عمل التقديم، تدقيق الكتالوج، رفع المحتوى إلى منصات البث
- التخصيص: بناء لوحة تحكم خاصة بك، تنبيهات، وعتبات تسجيل
- الامتثال: توليد سجلات تدقيق لمتطلبات العلامة المائية في قانون الذكاء الاصطناعي الأوروبي (EU AI Act)
- فعّال من حيث التكلفة: الدفع لكل استدعاء أفضل من توظيف مراجعين يدويين
بداية سريعة — 60 ثانية
- سجّل مجاناً على aisongchecker.pro (بريد إلكتروني فقط)
- ترقّ إلى Pro (4,99€/شهرياً) لفتح الوصول إلى API
- اذهب إلى Dashboard ← API وانسخ مفتاحك
ASC_API_KEY - نفّذ أول استدعاء لك (انظر مثال Python أدناه)
المصادقة
تستخدم جميع طلبات API مصادقة HTTP Basic Auth أو رمز Bearer في ترويسة Authorization. يُوصى باستخدام Bearer:
Authorization: Bearer ASC_LIVE_xxxxxxxxxxxxxxxx
يمنح مفتاح API الخاص بك وصولاً كاملاً إلى حسابك — احتفظ به على جانب الخادم فقط، ولا تضعه أبداً في JavaScript على جانب العميل أو في حزم تطبيقات الجوال.
نظرة عامة على نقاط النهاية
| نقطة النهاية | الطريقة | ماذا تفعل |
|---|---|---|
/api/v1/analyze/file | POST | ارفع ملفاً صوتياً واحصل على نتيجة كشف الذكاء الاصطناعي |
/api/v1/analyze/url | POST | تحليل رابط من YouTube/Spotify/SoundCloud |
/api/v1/analyze/batch | POST | إرسال ما يصل إلى 100 مقطع في استدعاء واحد |
/api/v1/result/{id} | GET | جلب نتيجة مهمة دفعية غير متزامنة |
/api/v1/certificate/{id} | GET | الحصول على شهادة أصالة (PDF، موقّعة) |
/api/v1/usage | GET | استخدام الحصة الحالي + حالة حد المعدل |
تحليل ملف واحد — Python
import requests
API_KEY = "ASC_LIVE_your_key_here"
URL = "https://api.aisongchecker.pro/v1/analyze/file"
with open("track.mp3", "rb") as f:
response = requests.post(
URL,
headers={"Authorization": f"Bearer {API_KEY}"},
files={"audio": f},
data={"return_features": "true", "return_certificate": "true"},
)
result = response.json()
print(f"AI probability: {result['ai_probability']:.1%}")
print(f"Verdict: {result['verdict']}") # "ai" | "human" | "uncertain"
print(f"Most likely platform: {result['platform_attribution']['top']}")
print(f"Confidence: {result['confidence']:.2f}")
مثال على الاستجابة
{
"id": "asc_anl_2k3jX9pQmR8t",
"ai_probability": 0.967,
"verdict": "ai",
"confidence": 0.94,
"platform_attribution": {
"top": "suno",
"scores": {
"suno": 0.91,
"udio": 0.04,
"riffusion": 0.02,
"elevenlabs_music": 0.01,
"musicgen": 0.01,
"stable_audio": 0.01
},
"version_hint": "v5"
},
"watermarks": {
"c2pa_detected": true,
"synthid_detected": false,
"c2pa_signer": "suno.ai"
},
"features": {
"spectral_flatness_mean": 0.0182,
"phase_coherence_entropy": 2.41,
"mfcc_distance_baseline": 8.93,
"frame_similarity": 0.78
},
"engine_version": "ASC-v8.3",
"analyzed_at": "2026-05-22T18:42:11Z",
"certificate_url": "https://aisongchecker.pro/cert/asc_anl_2k3jX9pQmR8t.pdf"
}
تحليل رابط — Node.js
const fetch = require('node-fetch');
const result = await fetch('https://api.aisongchecker.pro/v1/analyze/url', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.ASC_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
return_features: false
})
}).then(r => r.json());
console.log(`AI: ${(result.ai_probability * 100).toFixed(1)}%`);
if (result.verdict === 'ai') {
console.log(`Platform: ${result.platform_attribution.top}`);
}
التحليل الدفعي — Java
import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
String json = """
{
"tracks": [
{"id": "t1", "url": "https://soundcloud.com/artist/track-1"},
{"id": "t2", "url": "https://open.spotify.com/track/abc123"},
{"id": "t3", "url": "https://youtu.be/xyz789"}
],
"webhook_url": "https://your-app.com/asc-webhook"
}""";
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.aisongchecker.pro/v1/analyze/batch"))
.header("Authorization", "Bearer " + System.getenv("ASC_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
// Returns: {"job_id": "asc_job_xyz", "status": "queued", "estimated_completion": "..." }
حدود المعدل
| الفئة | طلبات/دقيقة | طلبات/يوم | حجم الدفعة |
|---|---|---|---|
| مجاني | 10 | 50 | 1 |
| Pro | 60 | 5,000 | 100 |
| Business | 300 | 50,000 | 500 |
| Enterprise | مخصّص | غير محدود | مخصّص |
ترويسات حد المعدل في كل استجابة:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 47
X-RateLimit-Reset: 1716422400
معالجة الأخطاء
| رمز HTTP | المعنى | ما العمل |
|---|---|---|
| 400 | طلب غير صالح (تنسيق ملف غير صحيح، رابط غير مدعوم) | تحقق من المدخلات، أعد المحاولة ببيانات صالحة |
| 401 | مفتاح API غير صالح | تحقق من المفتاح في لوحة التحكم، ودوّره إن تسرّب |
| 402 | تجاوز الحصة (الفئة المجانية) | ترقّ الخطة أو انتظر حتى إعادة التعيين |
| 413 | الملف كبير جداً (بحد أقصى 50 ميغابايت) | اضغط الصوت (مرّر MP3 بجودة 320 kbps) |
| 429 | بلوغ حد المعدل | طبّق تراجعاً أسّياً (انظر أدناه) |
| 500/503 | خطأ في الخادم | أعد المحاولة مع التراجع. لدينا اتفاقية مستوى خدمة 99.9%. |
نمط التراجع الأسّي (Exponential backoff)
import time, requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
session = requests.Session()
retries = Retry(
total=5, backoff_factor=2,
status_forcelist=[429, 500, 502, 503, 504],
allowed_methods=["POST"]
)
session.mount("https://", HTTPAdapter(max_retries=retries))
# Then use session.post(...) — auto retries with 2s, 4s, 8s, 16s, 32s
Webhooks للمهام الدفعية غير المتزامنة
بالنسبة للدفعات التي تزيد عن 10 مقاطع، تصل النتائج عبر webhook (أسرع من الاستقصاء المتكرر). اضبط webhook_url في طلب الدفعة. حمولة الـ webhook:
POST https://your-app.com/asc-webhook
Content-Type: application/json
X-ASC-Signature: t=1716422400,v1=abc123...
{
"event": "batch.completed",
"job_id": "asc_job_xyz",
"results": [
{ "id": "t1", "ai_probability": 0.97, "verdict": "ai", "platform": "suno" },
{ "id": "t2", "ai_probability": 0.04, "verdict": "human" },
{ "id": "t3", "ai_probability": 0.81, "verdict": "ai", "platform": "udio" }
],
"stats": { "processed": 3, "errors": 0, "duration_ms": 12450 }
}
تحقّق من ترويسة X-ASC-Signature على جانب الخادم باستخدام HMAC-SHA256 مع سرّ الـ webhook الخاص بك (نفس مخطط webhooks الخاص بـ Stripe).
حالات الاستخدام — أمثلة واقعية
1. منصة بث — وضع علامات آلي على الرفعات
عند رفع مقطع، استدعِ /analyze/file بشكل غير متزامن. إذا كانت ai_probability > 0.85، أضِف تلقائياً وسم "مولّد بالذكاء الاصطناعي" (وفق متطلبات قانون الذكاء الاصطناعي الأوروبي). ضع وسم platform_attribution.top في البيانات الوصفية للشفافية.
2. تصفية تقديمات A&R
تستدعي المنصات الشبيهة بـ SubmitHub الـ API عند كل رفع تجريبي. تحصل المقاطع ذات ai_probability > 0.7 على أولوية المراجعة البشرية. يوفّر ذلك ساعات على المنسّقين.
3. مشرف موسيقى — العناية الواجبة للترخيص
قبل ترخيص مقطع لفيلم أو تلفزيون، مرّره عبر /analyze/file واطلب الشهادة الموقّعة (HMAC-SHA256). أرفِق الشهادة بعقد الترخيص كدليل على التأليف البشري.
4. تدقيق كتالوج للعلامات الموسيقية
أرسل كتالوجك السابق (من 10 آلاف إلى مليون مقطع) عبر /analyze/batch. احصل على تقرير CSV بالمقاطع المشبوهة للمراجعة البشرية. التسعير: نحو 0.01$ لكل مقطع في فئة Business.
حزم SDK المتوفرة
- Python:
pip install aisongchecker· GitHub - Node.js:
npm install @aisongchecker/sdk· GitHub - Java: اعتمادية Maven، GitHub
- Go:
go get github.com/aisongchecker/go-sdk - مجموعة Postman: استوردها من /api-docs
قائمة تحقق الإنتاج
- ☑️ تخزين مفتاح API على جانب الخادم فقط (متغيّر بيئة أو مدير أسرار)
- ☑️ تراجع أسّي عند 429/5xx
- ☑️ التحقق من توقيع الـ webhook (HMAC-SHA256)
- ☑️ تخزين النتائج مؤقتاً حسب بصمة الصوت (تجنّب التحاليل المكررة)
- ☑️ ضبط
return_features=falseللاستخدام عالي الحجم (استجابات أصغر) - ☑️ مراقبة
X-RateLimit-Remainingفي لوحات التحكم - ☑️ التكرارية (Idempotency): مرّر
request_idخاصاً بك لإزالة تكرار المحاولات