API de morceau complet (Get Full Song)
Description du point d'accès
L'assemblage de morceau complet réunit « le morceau original + le fragment nouvellement généré » en un seul morceau complet : après Extend il ajoute la section suivante, et après Replace Section il recoud le nouveau fragment dans l'original. L'interface web officielle appelle cette capacité Get Full Song.
Point d'accès : POST /api/music/concat
Facturation : Payant, 0,05 CNY forfaitaires par appel. L'assemblage est découplé du prix de génération et ne participe ni au Max Mode ni aux multiplicateurs de profil vocal ; le montant réellement débité suit la configuration tarifaire du back-office.
Temps d'attente et timeouts (important) : c'est un point d'accès synchrone — la commande n'est acceptée et transmise à l'assemblage qu'à l'arrivée de la réponse. Réglez le timeout du client à 300 secondes ou plus ; l'absence de réponse ne signifie pas qu'aucun assemblage n'a eu lieu, et ne réessayez pas juste après un timeout (cela duplique la commande et refacture). Si la connexion a été coupée, vérifiez plus tard avec
GET /api/music/songs.
Authentification
| Paramètre | Type | Obligatoire | Remarques |
|---|---|---|---|
| Authorization | string | oui | Bearer YOUR_API_KEY |
| Content-Type | string | oui | application/json |
Paramètres de la requête
| Paramètre | Type | Obligatoire | Par défaut | Remarques |
|---|---|---|---|---|
| song_id | string | oui | - | Le song_id du fragment à assembler (résultat d'Extend ou de Replace Section) ; il doit être terminé |
| is_infill | boolean | non | false | false = assemblage d'extension ; true = assemblage de remplacement (infill) |
| source_audio_url | string | non | - | Adresse de l'audio source, lorsque le fragment provient d'un autre compte |
| source_file_name | string | non | - | Nom du fichier source, lorsque le fragment provient d'un autre compte |
| source_title | string | non | - | Titre source, lorsque le fragment provient d'un autre compte |
audio_id, source_clip_id et sourceClipId sont des écritures équivalentes de song_id ; utilisez l'une d'elles.
Exemple de requête
curl -X POST https://www.suno-api.io/api/music/concat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "extended_or_replaced_clip_id",
"is_infill": false
}'
Pour assembler après avoir remplacé une section, mettez is_infill à true :
{ "song_id": "infilled_clip_id", "is_infill": true }
Réponse
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "concat_clip_id",
"song_title": "Titre du morceau source",
"status": "queued"
}
]
}
}
L'assemblage ne renvoie qu'1 résultat (il ne produit pas 2 morceaux d'un coup). Enregistrez clips[].song_id, puis interrogez l'API de consultation des morceaux jusqu'à complete avant de récupérer l'audio.
D'où vient la durée du résultat
L'assemblage ne colle pas simplement deux fichiers bout à bout : il découpe le morceau source selon les points temporels enregistrés dans l'historique du fragment :
| Mode | Composition du résultat |
|---|---|
is_infill: false |
morceau source [0 .. continue_at] + toute la longueur du fragment d'extension |
is_infill: true |
morceau source [0 .. début] + le nouveau fragment remplacé + morceau source [fin .. fin de piste] |
L'audio original situé après le point de continuation est donc abandonné, et aucune section n'est dupliquée en entier.
Remarques
- Seuls les fragments terminés peuvent être assemblés ; si un fragment est encore en cours de génération, attendez qu'il se termine.
- Le résultat est un nouvel enregistrement ; le fragment d'origine est conservé et reste utilisable.
- Pour réunir deux morceaux différents en un seul, utilisez l'API de mashup ; pour ne conserver qu'une section, utilisez l'API de découpe.
Obtenir une clé d'API
Créez une clé d'API dans la console après votre inscription. Chaque génération coûte 0,6 ¥ et renvoie 2 pistes, les téléchargements sont illimités et aucun numéro de téléphone n'est requis.
Obtenir une clé d'API Retour à la présentation