La biblioteca API de SunoAI es un cliente Python no oficial para interactuar con el generador de música de Suno AI . Esta biblioteca facilita la generación de música utilizando el modelo Chirp v3 de Suno e incluye funciones principales de Suno AI con un descargador de música incorporado. Se puede implementar como API REST utilizando FastAPI, Local, Docker o en un proveedor de PaaS como Heroku.
? Antes de utilizar la biblioteca o la API REST, debe registrarse en el sitio web suno.ai y obtener su cookie como se muestra en esta captura de pantalla.
Puede encontrar cookies en las Herramientas para desarrolladores del navegador web -> Pestaña Red
Simplemente haga clic derecho y abra Inspeccionar. Filtro: _clerk_js_version
Configure esta cookie como variable de entorno SUNO_COOKIE
o inicialice la biblioteca como se muestra a continuación.
from suno import Suno , ModelVersions
client = Suno (
cookie = 'YOUR_COOKIE_HERE' ,
model_version = ModelVersions . CHIRP_V3_5 )
Instale la biblioteca usando pip:
pip install SunoAI
Establezca SUNO_COOKIE
como variable ambiental antes de la implementación. - Instrucciones
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 en: http://127.0.0.1:8080
⚡️ Inicio rápido:
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()
<- Inicializando
chirp-v3-5
, chirp-v3-0
, chirp-v2-0
por defecto es chirp-v3-5
. | Vista detallada generate()
Clip
que contienen datos de canciones con 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 )
✍️ Nota de uso:
is_custom
en True
, asegúrese de que el parámetro de solicitud contenga la letra de la canción que desea generar. Por el contrario, si is_custom
está configurado en False
, proporcione un mensaje descriptivo que detalle la esencia de la canción que desea.wait_audio
se establece en True , la solicitud tardará más mientras espera a que las URL de audio estén listas. Si no se establece, la respuesta volverá sin audio_url
pero con ID de audio. En tales casos, necesitarás llamar al método get_songs o get_song después de un breve intervalo para recuperar la respuesta con audio_url
incluido, una vez que se complete el proceso de generación. get_songs()
Clip
que representan las canciones recuperadas. 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 } " )
Modelos proporcionados por Suno AI para generar música.
chirp-v3-5
: modelo más nuevo, mejor estructura de canción, máximo 4 minutos.chirp-v3-0
: amplio, versátil, máximo 2 minutos.chirp-v2-0
: modelo Suno antiguo, máximo 1,3 minutos.Ejemplo de uso:
from suno import Suno , ModelVersions
client = Suno ( model_version = ModelVersions . CHIRP_V3_5 )
o
from suno import Suno
client = Suno ( model_version = 'chirp-v3-5' )
Modelo de clip:
La clase Clip encapsula los detalles de una pista de música generada por Suno AI. Cada atributo de esta clase proporciona información específica sobre la pista:
Modelo de información de créditos:
La clase CreditsInfo proporciona información sobre el saldo de crédito del usuario y su uso dentro del sistema Suno AI.
1. Generar música
POST /generate
Cuerpo de la solicitud:
{
"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
}
Respuesta:
[
{
"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. Recuperar canciones
POST /songs
{
"song_ids" : " uuid-format-1234,4567-abcd "
}
/generate
respuesta3. Consigue una canción específica
POST /get_song
{
"song_id" : " uuid-song-id "
}
/generate
respuesta pero solo recortar POST /set_visibility
{
"song_id" : " uuid-song-id " ,
"is_public" : true
}
{
"is_public" : true
}
4. Recuperar información crediticia
GET /credits
{
"credits_left" : 50 ,
"period" : " 2024-05 " ,
"monthly_limit" : 100 ,
"monthly_usage" : 25
}
Según Suno.ai, cada generación de canción consume 5 créditos, por lo que se necesita un total de 10 créditos para cada llamada exitosa.
Las contribuciones son las que hacen de la comunidad de código abierto un lugar increíble para aprender, inspirar y crear. Cualquier contribución que hagas será muy apreciada.
Todo el contenido y la música generados a través de esta biblioteca se acreditan a Suno AI. Esta API no oficial proporciona una forma conveniente de interactuar con los servicios de Suno AI, pero no reclama ninguna propiedad ni derechos sobre la música generada. Respete los términos de servicio de Suno AI cuando utilice su plataforma ❤️.
Esta biblioteca está destinada principalmente a fines educativos y de desarrollo. Su objetivo es mejorar y simplificar el acceso a las capacidades de generación de música de Suno AI. Si disfrutas la música generada, considera apoyar a Suno AI directamente. Crédito del logotipo: @ rejaul43
Este proyecto se distribuye bajo la licencia MIT. Esta licencia permite a todos usar, modificar y redistribuir el código. Sin embargo, no ofrece garantías sobre su funcionalidad. Para obtener más detalles, consulte el archivo LICENCIA en el repositorio.
Si este proyecto le resultó útil, no olvide darle un comentario en GitHub. ¡Esto también ayuda a otros a encontrar y utilizar el proyecto! ?
Únase a nuestros canales de Telegram,
Si tienes alguna pregunta, comentario o simplemente quieres saludar, puedes comunicarte conmigo:
? Construido con ? por desarrolladores individuales/>