suno-api
Suno crée de la musique à partir d’une idée décrite en quelques mots. Le flux de travail automatique documenté produit deux morceaux et propose une option de génération instrumentale ; les fichiers audio terminés et les métadonnées des pistes sont renvoyés dans le cadre de la tâche de génération.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
Suno est un service de génération musicale qui transforme une idée écrite en chansons. Le flux de travail automatique documenté accepte une courte description de la musique souhaitée et un réglage permettant de choisir une version instrumentale, puis génère deux morceaux. Utilisez le brief pour définir le thème, l’ambiance et l’orientation musicale que vous souhaitez entendre dans les pistes terminées.
Commencez par le rôle que la musique doit jouer. Un fond musical calme pour accompagner une explication, une ouverture énergique pour une courte vidéo ou une chanson introspective sur un voyage donnent chacun un objectif concret au brief. Décrivez en quelques phrases claires l’ambiance souhaitée et les caractéristiques musicales qui comptent pour cet objectif.
Pour une chanson avec voix, précisez clairement le thème et la langue dans le brief créatif. Décrivez l’idée que le morceau doit exprimer et le ton que l’interprétation doit transmettre. Écoutez le résultat terminé pour évaluer la manière dont la voix, les paroles et l’arrangement fonctionnent ensemble. Conservez les informations générées sur la piste avec l’audio pour l’évaluation.
Pour un résultat instrumental, utilisez l’option de génération instrumentale décrite dans la documentation et décrivez l’orientation musicale dans le texte. Précisez l’atmosphère souhaitée et les instruments à mettre en avant lorsqu’ils comptent pour le projet. Évaluez le morceau terminé en fonction de la place qu’il occupera au montage, y compris les passages qui doivent accompagner une voix parlée en fond sonore ou soutenir une transition visuelle.
Le flux de travail automatique produit deux morceaux à partir de l’idée soumise. Traitez-les comme deux propositions distinctes et conservez les deux fichiers audio terminés. Écoutez chacun du début à la fin, en passant par son développement. Comparez les morceaux réels au même objectif, notamment leur ambiance, leur arrangement et leur adéquation à l’usage prévu.
La génération est organisée sous forme de tâche. Conservez l’ID de tâche renvoyé lorsque vous consultez son résultat et distinguez les pistes terminées des éléments encore en cours. Le résultat documenté comprend des informations propres à chaque piste, comme son titre, son statut, l’emplacement du fichier audio et sa durée. Enregistrez le fichier audio terminé lui-même avec les métadonnées disponibles et le brief d’origine.
Pour une vidéo ou une présentation, testez la musique sélectionnée avec le contenu réel. Vérifiez l’ouverture, les transitions et la fin au volume d’écoute prévu. Marquez le passage qui sert le montage et conservez la piste entière pour les modifications ultérieures. La pertinence d’un extrait musical s’évalue dans le contexte de la voix, des images et du rythme de l’œuvre terminée.
Conservez ensemble l’idée écrite, le réglage de génération instrumentale, la sélection du modèle et toutes les pistes terminées. Lorsqu’une proposition doit être révisée, identifiez l’écart musical, par exemple un arrangement trop dense sous une voix parlée ou une ouverture qui se développe trop lentement. Préservez l’orientation utile et révisez la partie du brief liée à ce problème.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiPremiers pas
Suno crée de la musique à partir d’une idée décrite en quelques mots. Le flux de travail automatique documenté produit deux morceaux et propose une option de génération instrumentale ; les fichiers audio terminés et les métadonnées des pistes sont renvoyés dans le cadre de la tâche de génération.
- Entrées acceptées
- Texte
- Résultats
- Audio · Images · Vidéo
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Music POST /v1/music/generations
- Entrée
text- Sortie
audio,image,video
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites suno-api Conditions: Utilisez exactement ce sélecteur de routage Ailoot. | Par défaut— |
Champgpt_description_prompt | Typestring | ExigenceObligatoire | Valeurs et limites Conditions: Décrivez l’idée musicale ou le thème de la chanson. | Par défaut— |
Champmv | Typestring | ExigenceObligatoire | Valeurs et limites chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 Conditions: Sélectionnez explicitement une version documentée de Suno ; l’exemple utilise chirp-crow (v5). | Par défaut— |
Champmake_instrumental | Typeboolean | ExigenceObligatoire | Valeurs et limites Conditions: Définissez true pour de la musique instrumentale ou false pour une chanson. | Par défaut— |
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, gpt_description_prompt, mv, make_instrumental |
Paramètreoptional | Contrat |
Paramètrematerial_types | Contrattext |
Paramètreconditions | ContratUtilisez exactement ce sélecteur de routage Ailoot., Décrivez l’idée musicale ou le thème de la chanson., Sélectionnez explicitement une version documentée de Suno ; l’exemple utilise chirp-crow (v5)., Définissez true pour de la musique instrumentale ou false pour une chanson. |
Cycle de vie : submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Tarifs
Calcul du coût final
Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs estimés à des fins de comparaison
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Barème tarifaire | Quantité prévisionnelle | Quantité facturée | Coût |
|---|---|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité prévisionnelle— | Quantité facturée— | Coût Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement — / 1K tokens Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K tokens |
| ConfigurationPar requête | Barème tarifaire— | Quantité prévisionnelle— | Quantité facturéeune requête | Coût Entrée · Estimation à des fins de comparaison uniquement $0.2 par requête |
| ConfigurationCoût estimé de la génération | Barème tarifaire— | Quantité prévisionnelleEstimation pour une génération | Quantité facturée— | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.2 estimation avant génération Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée. |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
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
Recevoir et enregistrer les résultats
Ailoot Ultra · Music
Téléchargez chaque image renvoyée ou enregistrez son contenu Base64
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
Conserver tous les résultats terminés
Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.
Conservez la réponse complète et ses en-têtes, les identifiants d’origine, chaque résultat réel et tous les champs de consommation et de comptabilisation. Enregistrez chaque ressource unique dont vous êtes propriétaire et conservez chaque rôle qui y renvoie.
Si la réponse d’origine doit être vérifiée
Conservez l’id public de la tâche ou de l’opération renvoyé ainsi que tous les en-têtes. Consultez uniquement la tâche d’origine ; unknown ou result_pending_check n’autorise pas une nouvelle création.
Champs de la réponse
| Champ | Type |
|---|---|
Champid | Typestring |
Champpolling_url | Typestring |
Champprovider_task_id | Typestring |
Champdata.task_id | Typestring |
Champdata.status | Typestring |
Champdata.data[].audio_url | Typestring |
Champdata.data[].image_url | Typestring |
Champdata.data[].image_large_url | Typestring |
Champdata.data[].video_url | Typestring |
Alias
Alias du modèle
Ailoot Ultra suno-api
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · suno-api
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/music/generations·suno-api:text→audio,image,video- Quels champs la requête utilise-t-elle ?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental