88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support
Music

Format Suno Music (Musique)

Veuillez noter

Cette interface n'est pas une interface Suno officielle, mais plutôt un proxy Suno interface implémentée sur la base du projet open source Suno-API by author Plato.

Nous sommes très reconnaissants pour la contribution de l'auteur, qui nous permet d'utiliser facilement les puissantes fonctionnalités de Suno. Si vous avez le temps, merci de donner une étoile à l'auteur.

📝Présentation

L'API Suno Music fournit une série de fonctions de génération et de traitement de musique, notamment:

  • Générez des chansons basées sur des invites (mode Inspiration, mode personnalisé)

  • Continuer à écrire des chansons existantes

  • Concaténer plusieurs segments audio

  • Générer des paroles

  • Télécharger de l'audio

Grâce à l'API, vous pouvez facilement intégrer des capacités de génération de musique AI dans vos applications.

💡 Exemples de requêtes

Générer une chanson ✅

curl --location 'https://88api.ai/suno/submit/music' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "prompt":"[Verse]\nWalking down the streets\nBeneath the city lights\nNeon signs flickering\nLighting up the night\nHeart beating faster\nLike a drum in my chest\nI'\''m alive in this moment\nFeeling so blessed\n\nStilettos on the pavement\nStepping with grace\nSurrounded by the people\nMoving at their own pace\nThe rhythm of the city\nIt pulses in my veins\nLost in the energy\nAs my worries drain\n\n[Verse 2]\nConcrete jungle shining\nWith its dazzling glow\nEvery corner hiding secrets that only locals know\nA symphony of chaos\nBut it'\''s music to my ears\nThe hustle and the bustle\nWiping away my fears",
    "tags":"emotional punk",
    "mv":"chirp-v4",
    "title":"City Lights"
}'

Response Example:

{
  "code": "success",
  "message": "",
  "data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}

Générer des paroles ✅

curl --location 'https://88api.ai/suno/submit/lyrics' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "prompt":"dance"
}'

Response Example:

{
  "code": "success",
  "message": "",
  "data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}

Télécharger l'audio ❌

curl --location 'https://88api.ai/suno/uploads/audio-url' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "url":"http://cdnimg.example.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'

Response Example:

{
  "code": "success",
  "message": "",
  "data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}

Concaténation de chansons ❌

curl --location 'https://88api.ai/suno/submit/concat' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "clip_id":"extend song ID",
    "is_infill": false
}'

Response Example:

{
  "code": "success",
  "message": "",
  "data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}

Statut de la tâche de requête ✅

Requête par lots

curl --location 'https://88api.ai/suno/fetch' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "ids":["task_id"],
    "action":"MUSIC"
}'

Response Example:

{
  "code": "success",
  "message": "",
  "data": [
    {
      "task_id": "346c5d10-a4a1-4f49-a851-66a7dae6cfaf",
      "notify_hook": "",
      "action": "MUSIC",
      "status": "IN_PROGRESS",
      "fail_reason": "",
      "submit_time": 1716191749,
      "start_time": 1716191786,
      "finish_time": 0,
      "progress": "0%",
      "data": [
        {
          "id": "e9893d04-6a63-4007-8473-64b706eca4d1",
          "title": "Electric Dance Party",
          "status": "streaming",
          "metadata": {
            "tags": "club banger high-energy edm",
            "prompt": "omitted",
            "duration": null,
            "error_type": null,
            "error_message": null,
            "audio_prompt_id": null,
            "gpt_description_prompt": "miku dance"
          },
          "audio_url": "https://audiopipe.suno.ai/?item_id=e9893d04-6a63-4007-8473-64b706eca4d1",
          "image_url": "https://cdn1.suno.ai/image_e9893d04-6a63-4007-8473-64b706eca4d1.png",
          "video_url": "",
          "model_name": "chirp-v3",
          "image_large_url": "https://cdn1.suno.ai/image_large_e9893d04-6a63-4007-8473-64b706eca4d1.png",
          "major_model_version": "v3"
        }
      ]
    }
  ]
}

Requête unique

curl --location 'https://88api.ai/suno/fetch/{{task_id}}' \
--header 'Authorization: Bearer $API_KEY'

Response Example:

{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "f4a94d75-087b-4bb1-bd45-53ba293faf96",
    "notify_hook": "",
    "action": "LYRICS",
    "status": "SUCCESS",
    "fail_reason": "",
    "submit_time": 1716192124,
    "start_time": 1716192124,
    "finish_time": 1716192124,
    "progress": "100%",
    "data": {
      "id": "f4a94d75-087b-4bb1-bd45-53ba293faf96",
      "text": "omitted",
      "title": "Electric Fantasy",
      "status": "complete"
    }
  }
}

📮 Demande

Toutes les demandes doivent inclure des informations d'authentification dans l'en-tête de la demande:

Authorization: Bearer $API_KEY

Points de terminaison

Générer une chanson

POST /suno/submit/music

Générez de nouvelles chansons, prenant en charge le mode inspiration, le mode personnalisé et la continuation.

Générer des paroles

POST /suno/submit/lyrics

Générez des paroles basées sur des invites.

Télécharger l'audio

POST /suno/uploads/audio-url

Téléchargez des fichiers audio.

Concaténation de chansons

POST /suno/submit/concat

Concaténez plusieurs segments audio en une chanson complète.

Statut de la tâche de requête par lots

POST /suno/fetch

Batch obtient le statut et les résultats de plusieurs tâches.

Requête sur l'état d'une tâche unique

GET /suno/fetch/{{task_id}}

Interrogez l’état et les résultats d’une seule tâche.

Paramètres du corps de la requête

Générer une chanson

prompt
  • Type: chaîne
  • Obligatoire: le mode Inspiration ne nécessite pas, le mode personnalisé nécessite
  • Description: Le contenu des paroles doit être fourni en mode personnalisé
mv
  • Type: chaîne
  • Obligatoire: Non
  • Description: version du modèle, valeurs facultatives: chirp-v3-0, chirp-v3-5, la valeur par défaut est chirp-v3-0
title
  • Type: chaîne
  • Obligatoire: le mode Inspiration ne nécessite pas, le mode personnalisé nécessite
  • Description: Titre de la chanson, doit être fourni en mode personnalisé
tags
  • Type: chaîne
  • Obligatoire: le mode Inspiration ne nécessite pas, le mode personnalisé nécessite
  • Description: les balises de style de chanson, séparées par des virgules, doivent être fournies en mode personnalisé
make_instrumental

-Type: booléen

  • Obligatoire: Non
  • Description: Que ce soit pour générer de la musique pure, les vrais moyens génèrent de la musique pure
task_id
  • Type: chaîne
  • Obligatoire: obligatoire pour continuer
  • Description: l'ID de tâche de la chanson à continuer
continue_at

-Type: Flotteur

  • Obligatoire: obligatoire pour continuer
  • Description: Continuer à écrire à partir de quelle seconde de la chanson
continue_clip_id
  • Type: chaîne
  • Obligatoire: obligatoire pour continuer
  • Description: l'ID du clip de la chanson à suivre
gpt_description_prompt
  • Type: chaîne
  • Obligatoire: obligatoire en mode inspiration, non requis dans les autres modes
  • Description: Description textuelle de la source d'inspiration
notify_hook
  • Type: chaîne
  • Obligatoire: Non
  • Description: Adresse de rappel pour la fin de la génération de la chanson

Générer des paroles

prompt
  • Type: chaîne
  • Obligatoire: Oui
  • Description : Thématique ou mot-clé des paroles
notify_hook
  • Type: chaîne
  • Obligatoire: Non
  • Description: Adresse de rappel pour la fin de la génération des paroles

Télécharger l'audio

url
  • Type: chaîne
  • Obligatoire: Oui
  • Description: Adresse URL du fichier audio à télécharger

Concaténation de chansons

clip_id
  • Type: chaîne
  • Obligatoire: Oui
  • Description: ID du segment de chanson à concaténer
is_infill

-Type: booléen

  • Obligatoire: Non
  • Description: qu'il s'agisse du mode remplissage

Requête de tâche

ids
  • Tapez: Chaîne[]
  • Obligatoire: Oui
  • Description: Liste des ID de tâches à interroger
action
  • Type: chaîne
  • Obligatoire: Non
  • Description: Type de tâche, valeurs facultatives: MUSIQUE, PAROLES

📥 Réponse

Toutes les interfaces renvoient une réponse au format JSON unifié:

{
  "code": "success",
  "message": "",
  "data": "{{RESULT}}"
}

Réponse réussie

Champs de réponse de base

code
  • Type: chaîne
  • Description: Statut de la demande, le succès signifie le succès
message
  • Type: chaîne
  • Description: Message d'erreur lorsque la demande échoue
data
  • Type: différent pour différentes interfaces
  • Description: Renvoyer les données lorsque la demande aboutit
  • Générer des chansons, des paroles, télécharger de l'audio, des interfaces de concaténation de chansons: renvoyer la chaîne d'identification de la tâche
  • Interfaces de requête de tâche: renvoie un objet de tâche ou un tableau d'objets de tâche

Objets associés à la tâche

Objet de tâche
task_id
  • Type: chaîne
  • Description: ID de tâche
notify_hook
  • Type: chaîne
  • Description: Adresse de rappel une fois la tâche terminée
action
  • Type: chaîne
  • Description: Type de tâche, valeurs facultatives: MUSIQUE, PAROLES
status
  • Type: chaîne
  • Description: Statut de la tâche, valeurs facultatives: IN_PROGRESS, SUCCESS, FAIL
fail_reason
  • Type: chaîne
  • Description: Raison de l'échec de la tâche
submit_time

-Type: Entier

  • Description: horodatage de soumission des tâches
start_time

-Type: Entier

  • Description: horodatage de début de la tâche
finish_time

-Type: Entier

  • Description: horodatage de fin de tâche
progress
  • Type: chaîne
  • Description: Pourcentage de progression de la tâche
data
  • Type: Différent pour différents types de tâches
  • Description:
  • Tâche de génération de musique: tableau d'objets de chanson
  • Tâche de génération de paroles: objet paroles
Objet de chanson
id
  • Type: chaîne
  • Description: ID de la chanson
title
  • Type: chaîne
  • Description: Titre de la chanson
status
  • Type: chaîne
  • Description: Statut de la chanson
metadata
  • Type: Objet
  • Description: métadonnées de la chanson
  • tags: balises de style de chanson
  • invite: paroles utilisées pour générer la chanson
  • durée: durée de la chanson
  • error_type: type d'erreur
  • error_message: message d'erreur
  • audio_prompt_id: ID d'invite audio
  • gpt_description_prompt: Description de la source d'inspiration
audio_url
  • Type: chaîne
  • Description: adresse URL de l'audio de la chanson
image_url
  • Type: chaîne
  • Description: adresse URL de l'image de couverture de la chanson
video_url
  • Type: chaîne
  • Description: adresse URL de la vidéo de la chanson
model_name
  • Type: chaîne
  • Description: Nom du modèle utilisé pour générer la chanson
major_model_version
  • Type: chaîne
  • Description: Version modèle majeur
Objet Paroles
id
  • Type: chaîne
  • Description: ID des paroles
text
  • Type: chaîne
  • Description: Contenu des paroles
title
  • Type: chaîne
  • Description: Titre des paroles
status
  • Type: chaîne
  • Description: Statut des paroles

🌟 Bonnes pratiques

  1. Fournissez des invites de génération de chansons ou de paroles aussi détaillées et spécifiques que possible, en évitant les invites trop générales ou abstraites.

  2. Lors de l'interrogation de l'état d'une tâche, il est recommandé que les intervalles d'interrogation soient de 2 à 5 secondes pour éviter une interrogation excessive.

  3. Le mode Inspiration n'a besoin que de fournir le paramètre gpt_description_prompt, l'API générera automatiquement les paroles, les titres, les tags, etc.

  4. Le mode personnalisé nécessite des paramètres d'invite, de titre et de balises, qui peuvent avoir plus de contrôle sur la chanson.

  5. Essayez d'utiliser le dernier modèle (tel que chirp-v4), l'effet sera meilleur

  6. L'utilisation de la fonction de notification de rappel (paramètre notify_hook) peut réduire la fréquence d'interrogation et améliorer l'efficacité

  7. Les fonctions de continuation et de concaténation de la musique peuvent générer des œuvres plus riches et plus complètes sur la musique originale

  8. Faites attention aux exceptions et erreurs possibles, telles que les délais d'attente du réseau, les échecs de validation des paramètres, etc.