La bibliothèque API SunoAI est un client Python non officiel permettant d'interagir avec le générateur de musique de Suno AI . Cette bibliothèque facilite la génération de musique à l'aide du modèle Chirp v3 de Suno et comprend les principales fonctions de Suno AI avec un téléchargeur de musique intégré. Il peut être déployé en tant qu'API REST en utilisant FastAPI, Local, Docker, sur un fournisseur PaaS comme Heroku.
? Avant d'utiliser la bibliothèque ou l'API REST, vous devez vous inscrire sur le site suno.ai et obtenir votre cookie comme indiqué sur cette capture d'écran.
Vous pouvez trouver les cookies dans les outils de développement du navigateur Web -> onglet Réseau
Faites un clic droit et ouvrez Inspecter. Filtre : _clerk_js_version
Définissez ce cookie comme variable d'environnement SUNO_COOKIE
ou initialisez la bibliothèque comme indiqué ci-dessous.
from suno import Suno , ModelVersions
client = Suno (
cookie = 'YOUR_COOKIE_HERE' ,
model_version = ModelVersions . CHIRP_V3_5 )
Installez la bibliothèque en utilisant pip :
pip install SunoAI
Définissez SUNO_COOKIE
comme variable d'environnement avant le déploiement. - Instructions
export SUNO_COOKIE= " YOUR_COOKIE_HERE "
git clone [email protected]:Malith-Rukshan/Suno-API.git
pip3 install -r requirements.txt
cd Suno-API
fastapi run api.py --port 8080
? Disponible sur : http://127.0.0.1:8080
⚡️ Démarrage rapide :
from suno import Suno , ModelVersions
client = Suno (
cookie = 'YOUR_COOKIE_HERE' ,
model_version = ModelVersions . CHIRP_V3_5 )
# Generate a song
songs = client . generate ( prompt = "A serene landscape" , is_custom = False , wait_audio = True )
# Download generated songs
for song in songs :
file_path = client . download ( song = song )
print ( f"Song downloaded to: { file_path } " )
Suno()
<- Initialisation
chirp-v3-5
, chirp-v3-0
, chirp-v2-0
par défaut est chirp-v3-5
. | Vue détaillée generate()
Clip
contenant des données de chanson avec des ID. clips = client . generate (
prompt = "A peaceful melody reflecting a serene landscape" ,
is_custom = False ,
wait_audio = True
)
print ( clips )
clips = client . generate (
prompt = "I found a love, for me n Darling, just dive right in and follow my lead n Well, I found a girl, beautiful and sweet n Oh, I never knew you were the someone waiting for me..." ,
tags = "English men voice" ,
title = "Perfect by Malith-Rukshan/Suno-API" ,
make_instrumental = False ,
is_custom = True ,
wait_audio = True
)
print ( clips )
✍️ Remarque d'utilisation :
is_custom
sur True
, assurez-vous que le paramètre d'invite contient les paroles de la chanson que vous souhaitez générer. À l’inverse, si is_custom
est défini sur False
, fournissez une invite descriptive détaillant l’essence de la chanson souhaitée.wait_audio
est défini sur True , la requête prendra plus de temps car elle attend que les URL audio soient prêtes. Si elle n'est pas définie, la réponse sera renvoyée sans audio_url
mais avec les ID audio. Dans de tels cas, vous devrez appeler la méthode get_songs ou get_song après un court intervalle pour récupérer la réponse avec l' audio_url
incluse, une fois le processus de génération terminé. get_songs()
Clip
représentant les chansons récupérées. songs = client . get_songs ( song_ids = "123,456" )
print ( songs )
set_visibility()
response = client . set_visibility ( song_id = "uuid-type-songid-1234" , is_public = False )
print ( response )
get_credits()
CreditsInfo
. credits_info = client . get_credits ()
print ( credits_info )
download()
# Using a song ID
file_path = client . download ( song = "uuid-type-songid-1234" )
print ( f"Song downloaded to: { file_path } " )
# Using a Clip object
clip = client . get_song ( "uuid-type-songid-1234" )
file_path = client . download ( song = clip )
print ( f"Song downloaded to: { file_path } " )
Modèles fournis par Suno AI pour générer de la musique.
chirp-v3-5
: Modèle le plus récent, meilleure structure de chanson, maximum 4 minutes.chirp-v3-0
: Large, polyvalent, maximum 2 minutes.chirp-v2-0
: Modèle Suno vintage, max 1,3 minutes.Exemple Comment utiliser :
from suno import Suno , ModelVersions
client = Suno ( model_version = ModelVersions . CHIRP_V3_5 )
ou
from suno import Suno
client = Suno ( model_version = 'chirp-v3-5' )
Modèle de pince :
La classe Clip encapsule les détails d'une piste musicale générée par Suno AI. Chaque attribut de cette classe fournit des informations spécifiques sur la piste :
CréditsInfo Modèle :
La classe CreditsInfo fournit des informations sur le solde créditeur de l'utilisateur et son utilisation au sein du système Suno AI.
1. Générer de la musique
POST /generate
Corps de la demande :
{
"prompt" : " A serene melody about the ocean " ,
"is_custom" : false ,
"tags" : " relaxing, instrumental " ,
"title" : " Ocean Waves " ,
"make_instrumental" : true ,
"model_version" : " chirp-v3-5 " ,
"wait_audio" : true
}
Réponse:
[
{
"id" : " 124b735f-7fb0-42b9-8b35-761aed65a7f6 " ,
"video_url" : " " ,
"audio_url" : " https://audiopipe.suno.ai/item_id=124b735f-7fb0-42b9-8b35-761aed65a7f6 " ,
"image_url" : " https://cdn1.suno.aiimage_124b735f-7fb0-42b9-8b35-761aed65a7f6.png " ,
"image_large_url" : " https://cdn1.suno.aiimage_large_124b735f-7fb0-42b9-8b35-761aed65a7f.png " ,
"is_video_pending" : False,
"major_model_version" : " v3 " ,
"model_name" : " chirp-v3 " ,
"metadata" : {
"tags" : " English men voice " ,
"prompt" : " I found a love, for me n Darling,just dive right in and follow mylead n Well, I found a girl, beautiful andsweet n Oh, I never knew you were thesomeone waiting for me nn ′Cause we werejust kids when we fell in love n Not knowingwhat it was n I will not give you up thistime n But darling, just kiss me slow n Yourheart is all I own n And in your eyes,you're holding mine nn Baby, I′m dancing inthe dark n With you between myarms n Barefoot on the grass n Listening toour favourite song n When you said youlooked a mess n I whispered underneath mybreath n But you heard it n Darling, you lookperfect tonight " ,
"gpt_description_prompt" : None,
"audio_prompt_id" : None,
"history" : None,
"concat_history" : None,
"type" : " gen " ,
"duration" : None,
"refund_credits" : None,
"stream" : True,
"error_type" : None,
"error_message" : None
},
"is_liked" : False,
"user_id" : " 2340653f-32cb-4343-artb-09203ty749e9 " ,
"display_name" : " Snonymous " ,
"handle" : " anonymous " ,
"is_handle_updated" : False,
"is_trashed" : False,
"reaction" : None,
"created_at" : " 2024-05-05T11:54:09.356Z " ,
"status" : " streaming " ,
"title" : " Perfect by Malith-Rukshan/Suno-API " ,
"play_count" : 0 ,
"upvote_count" : 0 ,
"is_public" : False
}
]
2. Récupérer des chansons
POST /songs
{
"song_ids" : " uuid-format-1234,4567-abcd "
}
/generate
une réponse3. Obtenez une chanson spécifique
POST /get_song
{
"song_id" : " uuid-song-id "
}
/generate
une réponse, mais uniquement Clip POST /set_visibility
{
"song_id" : " uuid-song-id " ,
"is_public" : true
}
{
"is_public" : true
}
4. Récupérer les informations de crédit
GET /credits
{
"credits_left" : 50 ,
"period" : " 2024-05 " ,
"monthly_limit" : 100 ,
"monthly_usage" : 25
}
Selon Suno.ai Chaque génération de chanson consomme 5 crédits, donc un total de 10 crédits est nécessaire pour chaque appel réussi.
Les contributions sont ce qui fait de la communauté open source un endroit si formidable pour apprendre, inspirer et créer. Toute contribution que vous apportez est grandement appréciée.
Tout le contenu et la musique générés via cette bibliothèque sont crédités à Suno AI. Cette API non officielle fournit un moyen pratique d'interagir avec les services de Suno AI, mais ne revendique aucun droit de propriété ou de droit sur la musique générée. Veuillez respecter les conditions d'utilisation de Suno AI lorsque vous utilisez leur plateforme ❤️.
Cette bibliothèque est principalement destinée à des fins éducatives et de développement. Il vise à améliorer et à simplifier l'accès aux capacités de génération de musique de Suno AI. Si vous appréciez la musique générée, envisagez de prendre en charge directement Suno AI. Crédit Logo : @rejaul43
Ce projet est distribué sous licence MIT. Cette licence permet à chacun d'utiliser, de modifier et de redistribuer le code. Cependant, il n’offre aucune garantie quant à sa fonctionnalité. Pour plus de détails, consultez le fichier LICENSE dans le référentiel.
Si vous avez trouvé ce projet utile, n'oubliez pas de lui donner un sur GitHub. Cela aide également les autres à trouver et à utiliser le projet ! ?
Rejoignez nos chaînes Telegram,
Si vous avez des questions, des commentaires ou si vous souhaitez simplement me dire bonjour, vous pouvez me contacter :
? Construit avec ? par développeurs uniques >