API för nedladdning och uppspelning av låtmedia

Uppdaterad 2026-09-18 · Suno-API-teamet

Beskrivning av ändpunkten

Den här gruppen ändpunkter skiljer "hämta en medieadress" från "ladda ner filen på riktigt":

Fakturering: Allt är gratis. Nedladdning och förhandslyssning läser bara media som plattformen redan hostar; de anropar inte Suno och debiteras inte.

Rekommenderad modell: suno-v6. suno-v6, suno-v6-wild och suno-v6-mini finns tillgängliga.

Autentisering

Parameter Typ Krävs Anmärkningar
Authorization string ja Bearer YOUR_API_KEY (GET /api/music/download accepterar även en inloggningssession)
Content-Type string ja application/json

Mediatyper som stöds (kind)

kind Anmärkningar
song Ljud (mp3 är aliaset och standardvärdet; i svar skrivs alltid song tillbaka)
wav WAV-fil; förbered den först med API för att skapa/hämta WAV
video Video (mp4 är ett alias)
midi MIDI per stem; gäller bara stem där separeringen är klar — se MIDI-hämtnings-API
cover Omslagsbild (image är ett alias)
lyrics Låttext som text (.txt); kan bara hämtas med download-file / GET /api/music/download — download-url returnerar ingen textadress
timestamped_lyrics Fil med tidsstämplad låttext (.lrc, alias lrc). För närvarande stöds bara vissa låtar; när den returnerar success:false hämtar du tidslinjen med API för tidsstämplad låttext och bygger filen själv

1) Hämta en medieadress

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 Typ Krävs Anmärkningar
song_id string ja ID för din egen låt
kind string nej Se tabellen ovan; standard song
refresh boolean nej Att skicka true tvingar fram en ny förberedelse av resursen (till exempel efter att filen på CDN hämtats tillbaka)

url används för uppspelning eller för att kopiera själv; nav_url bär Content-Disposition: attachment och passar att klistra in direkt i webbläsarens adressfält för nedladdning (används när vissa mobilwebbläsare inte stöder blob-nedladdning).

⚠️ Adressens giltighet: 7 dagar — kopiera filen i tid

url / nav_url pekar på plattformens objektlagring och upphör som standard efter 7 dagar (filerna hämtas tillbaka och den gamla adressen returnerar 404). Kopiera dem till din egen lagring inom dessa 7 dagar.

Efter utgången behöver låten inte genereras om: anropa POST /api/music/download-url igen (eller skicka refresh: true) för att få nya giltiga adresser för låten. Den här ändpunktsgruppen är gratis och kostar inget extra.

2) Ladda ner en enskild fil direkt

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

Svarskroppen är en filström (inte JSON) och Content-Disposition innehåller redan filnamnet. Låttext och tidsstämplad låttext kan bara hämtas med denna ändpunkt (download-url returnerar bara medieadresser, inte text). .lrc-filen stöds för närvarande bara för vissa låtar; om den returnerar success:false bygger du .lrc själv med API för tidsstämplad låttext enligt nästa avsnitt, utan att försöka igen.

Så hämtar du tidsstämplad låttext (.lrc)

Två steg rekommenderas, och de fungerar för alla låtar:

Steg 1: hämta tidslinjen ord för ord (gratis)

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

Svaret är en vanlig array (ingen data-omslutning); varje element ser ut så här: {"word": "…", "start_s": 1.117, "end_s": 8.138, "success": true, "p_align": 0.99}. word innehåller redan radbrytningar, så du kan dela upp det per rad; för fältens betydelse, filtrering av instrumentala partier och andra varningar se "Fält" och "Användningsnoter" i API för tidsstämplad låttext.

Steg 2: bygg .lrc själv från start_s (tidsformat [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 laddar också ner serverns .lrc direkt, men för närvarande stöds bara vissa låtar: om den returnerar success:false bygger du den själv enligt ovan — inget nytt försök behövs och faktureringen påverkas inte.

3) Paketnedladdning

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

Använd antingen song_id (en enda) eller song_ids (batch, upp till 50 poster). Svarskroppen är en ZIP-ström.

4) Stabil nedladdningsadress

GET /api/music/download?song_id=<id>&kind=<kind> är nedladdningsingången som ges direkt i låtsvar. Den accepterar både en API-nyckel och en inloggningssession, beter sig som download-file och passar att hårdkoda i en klient eller en tredjepartsspelare.

5) Förhandslyssning under generering

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 Typ Krävs Anmärkningar
song_id string nej Ett enskilt låt-ID
song_ids string[] nej Batch, upp till 24 poster (max antal stem i en automatisk separeringsbatch)

Ett playable_until_completed som är true betyder att det är en tillfällig förhandslyssningsadress för en låt som genereras; byt till den permanenta adressen när låten är klar. Om en låt misslyckas får den posten ett error-fält och övriga låtar returneras som vanligt.

Noter

NästaFree2-nedladdnings-API

Skaffa en API-nyckel

Skapa en API-nyckel i konsolen efter registreringen. Varje generering kostar 0,6 ¥ och returnerar 2 spår, nedladdningar är obegränsade och inget telefonnummer krävs.

Hämta API-nyckel Tillbaka till översikten