AI Müzik Tespiti API — Kapsamlı Geliştirici Rehberi 2026
DSP, dağıtıcı, A&R başvuru platformu veya AI üretimi müziği programatik olarak işaretlemesi gereken herhangi bir araç inşa ediyorsanız, bir API'ye ihtiyacınız var. Bu rehber size her şeyi anlatır: kimlik doğrulama, uç noktalar, Python/Node/Java kod örnekleri, hız limitleri, yanıt formatları, hata yönetimi ve üretim ipuçları.
Kod örnekleri için AI Song Checker REST API'sini kullanacağız — başlaması ücretsizdir (kredi kartı gerekmez), tüm büyük AI müzik motorlarını destekler (Suno, Udio, Riffusion, ElevenLabs Music, MusicGen, Stable Audio) ve güven skorları ile platform atfı dahil zengin JSON döndürür.
Neden UI yerine API üzerinden entegre etmeli
- Ölçek: saatte binlerce parçayı toplu analiz edin
- Otomasyon: başvuru iş akışlarına, katalog denetimlerine, streaming yüklemelerine entegre edin
- Özelleştirme: kendi panonuzu, uyarılarınızı, skor eşiklerinizi oluşturun
- Uyumluluk: EU AI Act filigran gereksinimleri için denetim günlükleri oluşturun
- Maliyet açısından verimli: çağrı başına ödeme, manuel incelemeciler işe almaktan daha ucuzdur
Hızlı başlangıç — 60 saniye
- aisongchecker.pro adresinde ücretsiz kaydolun (sadece bir e-posta)
- API erişimini açmak için Pro'ya (4,99€/ay) yükseltin
- Pano → API bölümüne gidin ve
ASC_API_KEYanahtarınızı kopyalayın - İlk çağrınızı yapın (aşağıdaki Python örneğine bakın)
Kimlik doğrulama
Tüm API istekleri Authorization başlığında HTTP Basic Auth veya Bearer token kullanır. Bearer önerilir:
Authorization: Bearer ASC_LIVE_xxxxxxxxxxxxxxxx
API anahtarınız hesabınıza tam erişime sahiptir — sunucu tarafında tutun, asla istemci JS'sinde veya mobil uygulama paketlerinde bulundurmayın.
Uç noktalara genel bakış
| Uç nokta | Metot | Ne yapar |
|---|---|---|
/api/v1/analyze/file | POST | Ses dosyası yükleyin, AI tespit sonucu alın |
/api/v1/analyze/url | POST | Bir YouTube/Spotify/SoundCloud URL'sini analiz edin |
/api/v1/analyze/batch | POST | Tek çağrıda 100'e kadar parça gönderin |
/api/v1/result/{id} | GET | Asenkron toplu işin sonucunu getirin |
/api/v1/certificate/{id} | GET | Orijinallik sertifikası alın (PDF, imzalı) |
/api/v1/usage | GET | Mevcut kota kullanımı + hız limiti durumu |
Tek dosya analizi — 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}")
Örnek yanıt
{
"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"
}
URL analizi — 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}`);
}
Toplu analiz — 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": "..." }
Hız limitleri
| Katman | İstek/dk | İstek/gün | Toplu boyut |
|---|---|---|---|
| Ücretsiz | 10 | 50 | 1 |
| Pro | 60 | 5,000 | 100 |
| Business | 300 | 50,000 | 500 |
| Enterprise | Özel | Sınırsız | Özel |
Her yanıttaki hız limiti başlıkları:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 47
X-RateLimit-Reset: 1716422400
Hata yönetimi
| HTTP kodu | Anlamı | Ne yapmalı |
|---|---|---|
| 400 | Hatalı istek (geçersiz dosya formatı, desteklenmeyen URL) | Girişi kontrol edin, geçerli veriyle tekrar deneyin |
| 401 | Geçersiz API anahtarı | Panodaki anahtarı kontrol edin, sızdıysa değiştirin |
| 402 | Kota aşıldı (ücretsiz katman) | Planı yükseltin veya sıfırlanana kadar bekleyin |
| 413 | Dosya çok büyük (maks 50 MB) | Sesi sıkıştırın (yine de MP3 320 kbps geçirin) |
| 429 | Hız limitine ulaşıldı | Üstel geri çekilme uygulayın (aşağıya bakın) |
| 500/503 | Sunucu hatası | Geri çekilmeyle tekrar deneyin. %99,9 SLA'ya sahibiz. |
Üstel geri çekilme deseni
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
Asenkron toplu işler için webhook'lar
10'dan fazla parçalı toplu işlerde sonuçlar webhook aracılığıyla gelir (yoklamadan daha hızlı). Toplu istekte webhook_url ayarlayın. Webhook yükü:
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 başlığını sunucu tarafında webhook gizli anahtarınızla HMAC-SHA256 kullanarak doğrulayın (Stripe webhook'larıyla aynı şema).
Kullanım senaryoları — gerçek örnekler
1. Streaming platformu — yüklemeleri otomatik işaretleme
Parça yüklendiğinde /analyze/file'ı asenkron çağırın. Eğer ai_probability > 0.85 ise, otomatik olarak bir "AI-Generated" etiketi ekleyin (EU AI Act gereksinimleri uyarınca). Şeffaflık için metadata'da platform_attribution.top değerini etiketleyin.
2. A&R başvuru filtreleme
SubmitHub tarzı platformlar her demo yüklemesinde API'yi çağırır. ai_probability > 0.7 olan parçalar insan incelemesi önceliği alır. Küratörlere saatler kazandırır.
3. Müzik süpervizörü — lisanslama durum tespiti
Bir parçayı film/TV için lisanslamadan önce, /analyze/file üzerinden çalıştırın + imzalı sertifikayı isteyin (HMAC-SHA256). İnsan yazarlığının kanıtı olarak sertifikayı lisanslama sözleşmesine ekleyin.
4. Plak şirketleri için katalog denetimi
Geçmiş kataloğunuzu (10K-1M parça) /analyze/batch üzerinden gönderin. İnsan incelemesi için şüpheli parçaların CSV raporunu alın. Fiyatlandırma: Business katmanında parça başına ~$0.01.
Mevcut SDK'lar
- Python:
pip install aisongchecker· GitHub - Node.js:
npm install @aisongchecker/sdk· GitHub - Java: Maven bağımlılığı, GitHub
- Go:
go get github.com/aisongchecker/go-sdk - Postman koleksiyonu: /api-docs adresinden içe aktarın
Üretim kontrol listesi
- ☑️ API anahtarı yalnızca sunucu tarafında saklanır (env değişkeni veya gizli anahtar yöneticisi)
- ☑️ 429/5xx durumunda üstel geri çekilme
- ☑️ Webhook imza doğrulaması (HMAC-SHA256)
- ☑️ Sonuçları ses hash'ine göre önbelleğe alın (yinelenen analizlerden kaçının)
- ☑️ Yüksek hacimli kullanım için
return_features=falseayarlayın (daha küçük yanıtlar) - ☑️ Panolarda
X-RateLimit-Remainingdeğerini izleyin - ☑️ İdempotentlik: yeniden denemeleri tekilleştirmek için kendi
request_id'nizi geçirin