API muat turun dan pratonton media lagu

Dikemas kini 2026-09-18 · pasukan Suno-API

Penerangan endpoint

Kumpulan endpoint ini memisahkan "mendapatkan alamat media" daripada "memuat turun fail sebenar":

Pengebilan: Semuanya percuma. Muat turun dan pratonton hanya membaca media yang sudah dihoskan platform; ia tidak memanggil Suno dan tidak dicaj.

Model yang disyorkan: suno-v6. suno-v6, suno-v6-wild dan suno-v6-mini tersedia.

Pengesahan

Parameter Jenis Wajib Nota
Authorization string ya Bearer YOUR_API_KEY (GET /api/music/download turut menerima sesi log masuk)
Content-Type string ya application/json

Jenis media yang disokong (kind)

kind Nota
song Audio (mp3 ialah nama gantinya dan nilai lalai; dalam respons sentiasa ditulis semula sebagai song)
wav Fail WAV; sediakan dahulu dengan API penjanaan/pengambilan WAV
video Video (mp4 ialah nama ganti)
midi MIDI bagi setiap stem; sah hanya untuk stem yang pemisahannya sudah selesai — lihat API pengambilan MIDI
cover Imej kulit album (image ialah nama ganti)
lyrics Teks lirik (.txt); hanya boleh diperoleh dengan download-file / GET /api/music/download — download-url tidak memulangkan alamat lirik
timestamped_lyrics Fail lirik bertimestamp (.lrc, nama ganti lrc). Buat masa ini hanya sebahagian lagu disokong; apabila ia memulangkan success:false, gunakan API lirik bertimestamp untuk mendapatkan garis masa lalu bina failnya sendiri

1) Mendapatkan alamat media

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..."
  }
}
Parameter Jenis Wajib Nota
song_id string ya ID lagu anda sendiri
kind string tidak Lihat jadual di atas; lalai song
refresh boolean tidak Menghantar true memaksa sumber disediakan semula (contohnya selepas fail pada CDN diambil semula)

url digunakan untuk main balik atau salinan sendiri; nav_url membawa Content-Disposition: attachment dan sesuai ditampal terus ke bar alamat pelayar untuk memuat turun (digunakan apabila sesetengah pelayar mudah alih tidak menyokong muat turun blob).

⚠️ Tempoh sah alamat: 7 hari — salin fail segera

url / nav_url menunjuk ke storan objek platform dan tamat secara lalai selepas 7 hari (fail diambil semula dan alamat lama memulangkan 404). Salin fail itu ke storan anda sendiri dalam tempoh 7 hari itu.

Selepas tamat tempoh lagu tidak perlu dijana semula: panggil semula POST /api/music/download-url (atau hantar refresh: true) untuk mendapatkan alamat sah yang baharu bagi lagu itu. Kumpulan endpoint ini percuma dan tidak menambah kos.

2) Memuat turun satu fail secara terus

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

Badan respons ialah strim fail (bukan JSON) dan Content-Disposition sudah membawa nama fail. Lirik dan lirik bertimestamp hanya boleh diperoleh dengan endpoint ini (download-url memulangkan alamat media sahaja, bukan lirik). Fail .lrc buat masa ini hanya disokong untuk sebahagian lagu; jika ia memulangkan success:false, bina .lrc sendiri dengan API lirik bertimestamp seperti dalam bahagian seterusnya, jangan cuba semula.

Cara mendapatkan lirik bertimestamp (.lrc)

Dua langkah disyorkan, dan ia berkesan untuk mana-mana lagu:

Langkah 1: dapatkan garis masa perkataan demi perkataan (percuma)

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"}'

Hasilnya terus berupa tatasusunan (tiada pembalut data); setiap elemen berbentuk {"word": "…", "start_s": 1.117, "end_s": 8.138, "success": true, "p_align": 0.99}. word sudah mengandungi baris baharu, jadi boleh dipecahkan mengikut baris; untuk maksud medan, penapisan bahagian instrumental dan amaran lain, lihat "Medan" dan "Nota penggunaan" dalam API lirik bertimestamp.

Langkah 2: bina .lrc sendiri daripada start_s (format masa [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 turut memuat turun .lrc yang dijana pelayan secara terus, tetapi buat masa ini hanya sebahagian lagu disokong: jika ia memulangkan success:false, bina sendiri seperti di atas — tiada keperluan mencuba semula dan pengebilan tidak terjejas.

3) Muat turun pakej

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

Gunakan sama ada song_id (satu) atau song_ids (kelompok, sehingga 50 item). Badan respons ialah strim ZIP.

4) Alamat muat turun stabil

GET /api/music/download?song_id=<id>&kind=<kind> ialah pintu masuk muat turun yang diberikan terus dalam respons lagu. Ia menerima kunci API dan sesi log masuk, berkelakuan sama seperti download-file dan sesuai dikodkan tetap dalam klien atau pemain pihak ketiga.

5) Pratonton semasa penjanaan

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
      }
    ]
  }
}
Parameter Jenis Wajib Nota
song_id string tidak Satu ID lagu
song_ids string[] tidak Kelompok, sehingga 24 item (had bilangan stem dalam satu kelompok pemisahan automatik)

playable_until_completed bernilai true bermakna ini alamat pratonton sementara bagi lagu yang sedang dijana; tukar ke alamat tetap setelah lagu selesai. Jika satu lagu gagal, item itu membawa medan error dan lagu lain tetap dipulangkan seperti biasa.

Nota

SeterusnyaAPI muat turun Free2

Dapatkan kunci API

Cipta kunci API dalam konsol selepas mendaftar. Setiap penjanaan berharga 0.6 ¥ dan mengembalikan 2 lagu, muat turun tanpa had dan nombor telefon tidak diperlukan.

Dapatkan kunci API Kembali ke gambaran