Die SunoAI API Library ist ein inoffizieller Python-Client für die Interaktion mit dem Musikgenerator von Suno AI . Diese Bibliothek erleichtert das Generieren von Musik mit dem Chirp v3-Modell von Suno und umfasst Hauptfunktionen von Suno AI mit einem integrierten Musik-Downloader. Es kann als REST-API mit FastAPI, Local, Docker und einem PaaS-Anbieter wie Heroku bereitgestellt werden.
? Bevor Sie die Bibliothek oder die REST-API verwenden, müssen Sie sich auf der suno.ai-Website anmelden und Ihr Cookie erhalten, wie in diesem Screenshot gezeigt.
Sie können Cookies über die Entwicklertools -> Registerkarte „Netzwerk“ des Webbrowsers finden
Klicken Sie einfach mit der rechten Maustaste und öffnen Sie „Inspect“. Filter: _clerk_js_version
Legen Sie dieses Cookie als SUNO_COOKIE
Umgebungsvariable fest oder initialisieren Sie die Bibliothek wie unten gezeigt.
from suno import Suno , ModelVersions
client = Suno (
cookie = 'YOUR_COOKIE_HERE' ,
model_version = ModelVersions . CHIRP_V3_5 )
Installieren Sie die Bibliothek mit pip:
pip install SunoAI
Legen Sie SUNO_COOKIE
vor der Bereitstellung als Umgebungsvariable fest. - Anweisungen
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
? Verfügbar unter: http://127.0.0.1:8080
⚡️ Schnellstart:
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()
<- Initialisierung
chirp-v3-5
, chirp-v3-0
, chirp-v2-0
. Die Standardeinstellung ist chirp-v3-5
. | Detailansicht generate()
Clip
-Objekten, die Songdaten mit IDs enthalten. 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 )
✍️ Nutzungshinweis:
is_custom
auf True
setzen, stellen Sie sicher, dass der Prompt-Parameter den Text des Songs enthält, den Sie generieren möchten. Wenn is_custom
hingegen auf False
gesetzt ist, stellen Sie eine beschreibende Eingabeaufforderung bereit, in der das Wesentliche des gewünschten Songs detailliert beschrieben wird.wait_audio
auf True gesetzt ist, dauert die Anfrage länger, da darauf gewartet wird, dass die Audio-URLs bereit sind. Wenn nicht festgelegt, wird die Antwort ohne audio_url
, aber mit Audio-IDs zurückgegeben. In solchen Fällen müssen Sie nach einem kurzen Intervall die Methode get_songs oder get_song aufrufen, um die Antwort mit der enthaltenen audio_url
abzurufen, sobald der Generierungsprozess abgeschlossen ist. get_songs()
Clip
-Objekten, die die abgerufenen Songs darstellen. 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
Objekt. 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 } " )
Von Suno AI bereitgestellte Modelle zum Generieren von Musik.
chirp-v3-5
: Neuestes Modell, bessere Songstruktur, maximal 4 Minuten.chirp-v3-0
: Breit gefächert, vielseitig, maximal 2 Minuten.chirp-v2-0
: Vintage Suno-Modell, max. 1,3 Minuten.Beispiel für die Verwendung:
from suno import Suno , ModelVersions
client = Suno ( model_version = ModelVersions . CHIRP_V3_5 )
oder
from suno import Suno
client = Suno ( model_version = 'chirp-v3-5' )
Clip-Modell:
Die Clip- Klasse kapselt die Details eines von der Suno AI generierten Musiktitels. Jedes Attribut dieser Klasse stellt spezifische Informationen über den Track bereit:
CreditsInfo-Modell:
Die CreditsInfo- Klasse stellt Informationen über den Guthabenstand und die Nutzung des Benutzers im Suno AI-System bereit.
1. Musik generieren
POST /generate
Anfragetext:
{
"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
}
Antwort:
[
{
"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. Songs abrufen
POST /songs
{
"song_ids" : " uuid-format-1234,4567-abcd "
}
/generate
Response3. Holen Sie sich ein bestimmtes Lied
POST /get_song
{
"song_id" : " uuid-song-id "
}
/generate
-Antwort, aber nur Clip POST /set_visibility
{
"song_id" : " uuid-song-id " ,
"is_public" : true
}
{
"is_public" : true
}
4. Rufen Sie Kreditinformationen ab
GET /credits
{
"credits_left" : 50 ,
"period" : " 2024-05 " ,
"monthly_limit" : 100 ,
"monthly_usage" : 25
}
Laut Suno.ai verbraucht jede Songgeneration 5 Credits, sodass für jeden erfolgreichen Aufruf insgesamt 10 Credits notwendig sind.
Beiträge machen die Open-Source-Community zu einem so wunderbaren Ort zum Lernen, Inspirieren und Schaffen. Jeder Beitrag, den Sie leisten, wird sehr geschätzt.
Alle über diese Bibliothek generierten Inhalte und Musik werden Suno AI gutgeschrieben. Diese inoffizielle API bietet eine bequeme Möglichkeit, mit den Diensten von Suno AI zu interagieren, erhebt jedoch keinen Anspruch auf Eigentum oder Rechte an der generierten Musik. Bitte respektieren Sie die Nutzungsbedingungen von Suno AI, wenn Sie deren Plattform nutzen ❤️.
Diese Bibliothek ist in erster Linie für Bildungs- und Entwicklungszwecke gedacht. Ziel ist es, den Zugriff auf die Musikgenerierungsfunktionen von Suno AI zu verbessern und zu vereinfachen. Wenn Ihnen die erzeugte Musik gefällt, sollten Sie Suno AI direkt unterstützen. Logo-Quelle: @rejaul43
Dieses Projekt wird unter der MIT-Lizenz vertrieben. Diese Lizenz ermöglicht es jedem, den Code zu verwenden, zu ändern und weiterzuverbreiten. Es besteht jedoch keine Garantie hinsichtlich der Funktionalität. Weitere Einzelheiten finden Sie in der LICENSE-Datei im Repository.
Wenn Sie dieses Projekt hilfreich fanden, vergessen Sie nicht, es auf GitHub zu bewerten. Dies hilft auch anderen, das Projekt zu finden und zu nutzen! ?
Treten Sie unseren Telegram-Kanälen bei,
Wenn Sie Fragen oder Feedback haben oder einfach nur Hallo sagen möchten, können Sie sich an mich wenden:
? Gebaut mit ? von Einzelentwicklern >