AI Müzik Tespiti API — Kapsamlı Geliştirici Rehberi 2026

22 Mayıs 2026 · AI Song Checker ekibi

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

Hızlı başlangıç — 60 saniye

  1. aisongchecker.pro adresinde ücretsiz kaydolun (sadece bir e-posta)
  2. API erişimini açmak için Pro'ya (4,99€/ay) yükseltin
  3. Pano → API bölümüne gidin ve ASC_API_KEY anahtarınızı kopyalayın
  4. İ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ç noktaMetotNe yapar
/api/v1/analyze/filePOSTSes dosyası yükleyin, AI tespit sonucu alın
/api/v1/analyze/urlPOSTBir YouTube/Spotify/SoundCloud URL'sini analiz edin
/api/v1/analyze/batchPOSTTek çağrıda 100'e kadar parça gönderin
/api/v1/result/{id}GETAsenkron toplu işin sonucunu getirin
/api/v1/certificate/{id}GETOrijinallik sertifikası alın (PDF, imzalı)
/api/v1/usageGETMevcut 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ünToplu boyut
Ücretsiz10501
Pro605,000100
Business30050,000500
EnterpriseÖzelSı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 koduAnlamıNe yapmalı
400Hatalı istek (geçersiz dosya formatı, desteklenmeyen URL)Girişi kontrol edin, geçerli veriyle tekrar deneyin
401Geçersiz API anahtarıPanodaki anahtarı kontrol edin, sızdıysa değiştirin
402Kota aşıldı (ücretsiz katman)Planı yükseltin veya sıfırlanana kadar bekleyin
413Dosya çok büyük (maks 50 MB)Sesi sıkıştırın (yine de MP3 320 kbps geçirin)
429Hız limitine ulaşıldıÜstel geri çekilme uygulayın (aşağıya bakın)
500/503Sunucu 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

Üretim kontrol listesi

Related