Şarkı medyası indirme ve önizleme API'si

2026-09-18 tarihinde güncellendi · Suno-API ekibi

Uç nokta açıklaması

Bu uç nokta grubu "medya adresi alma" ile "dosyayı gerçekten indirme" işlerini ayırır:

Faturalama: Hepsi ücretsizdir. İndirme ve önizleme yalnızca platformun zaten barındırdığı medyayı okur; Suno'yu çağırmaz ve ücret alınmaz.

Önerilen model: suno-v6. suno-v6, suno-v6-wild veya suno-v6-mini kullanılabilir.

Kimlik doğrulama

Parametre Tür Zorunlu Notlar
Authorization string evet Bearer YOUR_API_KEY (GET /api/music/download oturum açma durumunu da kabul eder)
Content-Type string evet application/json

Desteklenen medya türleri (kind)

kind Notlar
song Ses (mp3 onun takma adı ve varsayılanıdır; yanıtlarda her zaman song olarak geri yazılır)
wav WAV dosyası; önce WAV oluşturma/alma API'si ile hazırlanmalıdır
video Video (mp4 takma adıdır)
midi Ayrıştırılmış kanalların MIDI'si; yalnızca ayrıştırması tamamlanmış kanallar için geçerlidir — bkz. MIDI alma API'si
cover Kapak görseli (image takma adıdır)
lyrics Şarkı sözü metni (.txt); yalnızca download-file / GET /api/music/download ile alınır, download-url söz adresi döndürmez
timestamped_lyrics Zaman damgalı söz dosyası (.lrc, takma adı lrc). Şu an yalnızca bazı şarkılar desteklenir; success:false dönerse Zaman damgalı şarkı sözü API'si ile zaman çizelgesini alıp dosyayı kendiniz oluşturun

1) Medya adresi alma

curl -X POST https://www.suno-api.io/api/music/download-url \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "song_id", "kind": "song"}'
{
  "code": 200,
  "message": "success",
  "data": {
    "song_id": "song_id",
    "kind": "song",
    "url": "https://media.suno-api.io/assets/song_id-mp3.mp3",
    "nav_url": "https://media.suno-api.io/assets/song_id-mp3.mp3?...&response-content-disposition=attachment..."
  }
}
Parametre Tür Zorunlu Notlar
song_id string evet Kendi şarkınızın ID'si
kind string hayır Yukarıdaki tabloya bakın; varsayılan song
refresh boolean hayır true göndermek kaynağın yeniden hazırlanmasını zorlar (örneğin CDN'deki dosya geri alındıktan sonra)

url oynatma veya kendiniz kopyalayıp saklama içindir; nav_url Content-Disposition: attachment taşır ve tarayıcı adres çubuğuna doğrudan yapıştırıp indirmek için uygundur (bazı mobil tarayıcılar blob indirmeyi desteklemediğinde kullanın).

⚠️ Adres geçerliliği: 7 gün — dosyayı zamanında kopyalayın

url / nav_url platformun nesne depolamasına işaret eder ve varsayılan olarak 7 gün sonra geçersiz olur (dosyalar geri alınır ve eski adres 404 döndürür). Bu 7 gün içinde kendi depolamanıza kopyalayın.

Süre dolduktan sonra şarkıyı yeniden üretmeniz gerekmez: POST /api/music/download-url çağrısını yeniden yapın (veya refresh: true gönderin) ve o şarkı için yeni ve geçerli adresler alın. Bu uç nokta grubu ücretsizdir ve ek ücret doğurmaz.

2) Tek dosyayı doğrudan indirme

curl -X POST https://www.suno-api.io/api/music/download-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "song_id", "kind": "song"}' \
  -o song.mp3

Yanıt gövdesi bir dosya akışıdır (JSON değil) ve Content-Disposition dosya adını zaten taşır. Şarkı sözü ve zaman damgalı sözler yalnızca bu uç nokta ile alınır (download-url yalnızca medya adresi döndürür, söz döndürmez). .lrc dosyası şu an yalnızca bazı şarkılarda desteklenir; success:false dönerse bir sonraki bölümdeki Zaman damgalı şarkı sözü API'si yöntemiyle .lrc dosyasını kendiniz oluşturun, yeniden denemeyin.

Zaman damgalı sözler (.lrc) nasıl alınır

Her şarkıda çalışan iki adım önerilir:

1. adım: kelime bazlı zaman çizelgesini alın (ücretsiz)

curl -X POST https://www.suno-api.io/api/lyrics/timeline \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "suno-v6", "song_id": "song_id"}'

Dönen değer doğrudan bir dizidir (data sarmalayıcısı yoktur); her öğe şöyle görünür: {"word": "…", "start_s": 1.117, "end_s": 8.138, "success": true, "p_align": 0.99}. word zaten satır sonları içerir, satırlara bölebilirsiniz; alan anlamları, enstrümantal bölümleri filtreleme ve diğer uyarılar için Zaman damgalı şarkı sözü API'si sayfasındaki "Alanlar" ve "Kullanım notları" bölümlerine bakın.

2. adım: start_s ile .lrc dosyasını kendiniz oluşturun (zaman biçimi [mm:ss.cc])

def to_lrc(segments):
    lines = []
    for seg in segments:
        text = seg["word"].strip()
        if not text:
            continue
        start = max(0.0, float(seg["start_s"]))
        cs = int(start * 100 + 0.5)
        lines.append(f"[{cs // 6000:02d}:{(cs % 6000) // 100:02d}.{cs % 100:02d}]{text}")
    return "\n".join(lines)

GET /api/music/download?song_id=<id>&kind=lrc sunucunun ürettiği .lrc dosyasını da doğrudan indirir, ancak şu an yalnızca bazı şarkılar desteklenir: success:false dönerse yukarıdaki yöntemle kendiniz oluşturun — yeniden denemeye gerek yoktur ve faturalamayı etkilemez.

3) Toplu indirme

curl -X POST https://www.suno-api.io/api/music/download-all \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_ids": ["song_id_1", "song_id_2"]}' \
  -o songs.zip

song_id (tek) veya song_ids (toplu, en fazla 50 kayıt) kullanın. Yanıt gövdesi bir ZIP akışıdır.

4) Sabit indirme adresi

GET /api/music/download?song_id=<id>&kind=<kind>, şarkı yanıtlarında doğrudan verilen indirme girişidir. Hem API anahtarını hem oturum açma durumunu kabul eder, download-file ile aynı davranır ve istemciye ya da üçüncü taraf bir oynatıcıya sabit olarak gömülmeye uygundur.

5) Üretim sırasında önizleme

curl -X POST https://www.suno-api.io/api/music/generation-stream-url \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_ids": ["song_id_1", "song_id_2"]}'
{
  "code": 200,
  "message": "success",
  "data": {
    "items": [
      {
        "song_id": "song_id_1",
        "url": "https://media.suno-api.io/assets/song_id_1-mp3.mp3",
        "expires_at": 0,
        "content_type": "audio/mpeg",
        "playable_until_completed": false,
        "mode": "mp3",
        "ranges": true
      }
    ]
  }
}
Parametre Tür Zorunlu Notlar
song_id string hayır Tek bir şarkı ID'si
song_ids string[] hayır Toplu, en fazla 24 kayıt (bir otomatik ayrıştırma grubundaki kanal sayısı üst sınırı)

playable_until_completed değerinin true olması, bunun üretimi süren bir şarkı için geçici önizleme adresi olduğunu gösterir; şarkı tamamlanınca kalıcı adrese geçin. Bir şarkı başarısız olursa o öğe bir error alanı taşır, diğer şarkılar normal şekilde döner.

Notlar

SonrakiFree2 indirme API'si

API anahtarı alın

Kaydolduktan sonra konsoldan bir API anahtarı oluşturun. Her üretim 0,6 ¥ tutarındadır ve 2 parça döner, indirmeler sınırsızdır ve telefon numarası gerekmez.

API anahtarı al Genel bakışa dön