suno-api
Suno maakt muziek vanuit een kort geschreven idee. De gedocumenteerde automatische workflow produceert twee nummers en biedt een keuze voor instrumentale muziek, waarbij voltooide audio en trackmetadata via de generatietaak worden teruggegeven.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Suno is een muziekgeneratieservice die een geschreven idee omzet in nummers. De gedocumenteerde automatische workflow accepteert een korte beschrijving van de beoogde muziek en een keuze voor instrumentale muziek en genereert vervolgens twee nummers. Gebruik de briefing om het thema, de sfeer en de muzikale richting vast te leggen die je in de voltooide tracks wilt horen.
Begin met de rol die de muziek moet vervullen. Een rustige achtergrond bij een uitleg, een energieke opening voor een korte video of een bespiegelend lied over een reis geeft de briefing telkens een concreet doel. Beschrijf de beoogde sfeer en de muzikale kenmerken die voor dat doel van belang zijn in enkele duidelijke zinnen.
Maak bij een nummer met zang het thema en de taal duidelijk in de creatieve briefing. Beschrijf het idee dat de track moet uitdrukken en de toon die de uitvoering moet overbrengen. Luister naar het voltooide resultaat om te beoordelen hoe zang, tekst en arrangement samenwerken. Bewaar de gegenereerde trackinformatie naast de audio voor de beoordeling.
Gebruik voor een instrumentaal resultaat de gedocumenteerde keuze voor instrumentale muziek en beschrijf de muzikale richting in de tekst. Vermeld de gewenste sfeer en prominente instrumenten wanneer die voor het project van belang zijn. Beoordeel de voltooide track op de plaats die deze in de montage krijgt, inclusief de delen die onder gesproken tekst moeten passen of een visuele overgang moeten ondersteunen.
De automatische workflow produceert twee nummers vanuit het ingediende idee. Behandel die als afzonderlijke kandidaten en bewaar beide voltooide audiobestanden. Luister van elk nummer naar de opening, ontwikkeling en het einde. Vergelijk de daadwerkelijke tracks met hetzelfde doel, inclusief hun sfeer, arrangement en geschiktheid voor het geplande gebruik.
De generatie is georganiseerd als een taak. Bewaar de teruggegeven taak-ID terwijl je het resultaat controleert en maak onderscheid tussen voltooide tracks en onderdelen die nog in behandeling zijn. Het gedocumenteerde resultaat bevat informatie per track, zoals titel, status, audiolocatie en duur. Bewaar de voltooide audio zelf bij de beschikbare metadata en de oorspronkelijke briefing.
Probeer bij een video of presentatie de geselecteerde muziek uit met het daadwerkelijke materiaal. Controleer de opening, overgangen en het einde op het beoogde luistervolume. Markeer het fragment dat de montage ondersteunt en bewaar de volledige track voor latere aanpassingen. Een geschikt muziekfragment wordt beoordeeld in samenhang met de stem, beelden en het tempo van het voltooide werk.
Bewaar het geschreven idee, de keuze voor instrumentale muziek, de modelkeuze en alle voltooide tracks bij elkaar. Benoem wanneer een kandidaat moet worden aangepast de muzikale afwijking, zoals een arrangement dat onder gesproken tekst te vol is of een opening die zich te langzaam ontwikkelt. Behoud de bruikbare richting en pas het deel van de briefing aan dat met dat probleem samenhangt.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiAan de slag
Suno maakt muziek vanuit een kort geschreven idee. De gedocumenteerde automatische workflow produceert twee nummers en biedt een keuze voor instrumentale muziek, waarbij voltooide audio en trackmetadata via de generatietaak worden teruggegeven.
- Toegestane invoer
- Tekst
- Resultaten
- Audio · Afbeeldingen · Video
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Music POST /v1/music/generations
- Invoertypen
text- Uitvoertypen
audio,image,video
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten suno-api Voorwaarden: Gebruik exact deze Ailoot-routeringsselector. | Standaard— |
Veldgpt_description_prompt | Typestring | VereisteVereist | Waarden en limieten Voorwaarden: Beschrijf het muzikale idee of het thema van het lied. | Standaard— |
Veldmv | Typestring | VereisteVereist | Waarden en limieten chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 Voorwaarden: Kies expliciet een gedocumenteerde Suno-versie; het voorbeeld gebruikt chirp-crow (v5). | Standaard— |
Veldmake_instrumental | Typeboolean | VereisteVereist | Waarden en limieten Voorwaarden: Stel true in voor instrumentale muziek of false voor een lied. | Standaard— |
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, gpt_description_prompt, mv, make_instrumental |
Parameteroptional | Contract |
Parametermaterial_types | Contracttext |
Parameterconditions | ContractGebruik exact deze Ailoot-routeringsselector., Beschrijf het muzikale idee of het thema van het lied., Kies expliciet een gedocumenteerde Suno-versie; het voorbeeld gebruikt chirp-crow (v5)., Stel true in voor instrumentale muziek of false voor een lied. |
Levenscyclus: submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Tarieven
Zo worden de uiteindelijke kosten berekend
De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn niet de definitieve factureerbare hoeveelheid.
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus is geselecteerd
- Flexmodus
- Niet opgegeven Wanneer de modus flex is geselecteerd
- Maximale redeneerinspanning
- Niet opgegeven Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt
Geschatte tarieven ter vergelijking
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Verwachte hoeveelheid | Gefactureerde hoeveelheid | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Verwachte hoeveelheid— | Gefactureerde hoeveelheid— | Kosten Invoer · Invoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache lezen · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking — / 1K tokens |
| ConfiguratiePer verzoek | Tariefstaffel— | Verwachte hoeveelheid— | Gefactureerde hoeveelheidéén verzoek | Kosten Invoer · Schatting uitsluitend ter vergelijking $0.2 per verzoek |
| ConfiguratieGeschatte generatiekosten | Tariefstaffel— | Verwachte hoeveelheidschatting voor één generatie | Gefactureerde hoeveelheid— | Kosten Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $0.2 schatting vóór generatie Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie. |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
Ailoot Ultra · Music
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "suno-api",
"gpt_description_prompt": "古诗词",
"mv": "chirp-crow",
"make_instrumental": false
}
JSON
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Resultaten ophalen en opslaan
Ailoot Ultra · Music
Download elke teruggegeven afbeelding of sla de Base64-inhoud ervan op
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
Alle voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar het volledige antwoord en de headers, de oorspronkelijke identificaties, alle daadwerkelijke uitvoer en alle gebruiks-/afrekenvelden. Sla elke unieke asset op die u bezit en behoud elke rol die ernaar verwijst.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar de geretourneerde openbare taak- of operatie-id en alle headers. Lees uitsluitend de oorspronkelijke taak; unknown of result_pending_check geeft geen toestemming voor een nieuwe aanmaak.
Antwoordvelden
| Veld | Type |
|---|---|
Veldid | Typestring |
Veldpolling_url | Typestring |
Veldprovider_task_id | Typestring |
Velddata.task_id | Typestring |
Velddata.status | Typestring |
Velddata.data[].audio_url | Typestring |
Velddata.data[].image_url | Typestring |
Velddata.data[].image_large_url | Typestring |
Velddata.data[].video_url | Typestring |
Aliasnamen
Modelaliasnamen
Ailoot Ultra suno-api
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · suno-api
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/music/generations·suno-api:text→audio,image,video- Welke velden gebruikt het verzoek?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental