API przesyłania dźwięku źródłowego
Opis punktu końcowego
Przesyłanie dźwięku źródłowego zamienia lokalny lub zdalny plik audio w clip źródłowy, którego mogą użyć kolejne funkcje: cover, przedłużanie, zamiana fragmentu, rozdzielanie i inne.
Punkt końcowy: POST /api/music/upload-source
Rozliczenie: Bezpłatne. Ten punkt końcowy tylko przesyła dźwięk źródłowy; nie rozpoczyna zadania generowania.
Zalecane użycie: to krok 1 «coveru dwuetapowego». Najpierw prześlij dźwięk tym punktem końcowym (bezpłatnie, a w razie niepowodzenia możesz ponawiać w dowolnym momencie) i zapisz zwrócony
clip_id; po potwierdzeniu, że przesyłanie się powiodło (statusw stanie ukończonym), wywołaj API coveru na podstawie clipu źródłowego, aby rozpocząć cover — ciało tego żądania ma tylko kilkaset bajtów, więc nie zostanie ucięte w tranzycie z powodu zbyt dużego pliku audio. W porównaniu z jednorazowym API „prześlij i zrób cover" taki podział jest stabilniejszy, gdy dźwięk jest duży, sieć niestabilna albo ten sam materiał ma być użyty wielokrotnie (przedłużanie / zamiana / rozdzielanie).
Wskazówki dla dużych plików
| Sytuacja | Zalecane podejście |
|---|---|
| Dźwięk jest już publiczny (ma bezpośredni link https) | Użyj file_url: ciało żądania ma tylko kilkaset bajtów, najstabilniejsza opcja |
| Plik lokalny (Node / Python / komputer) | Użyj przesyłania multipart (-F "file=@source.mp3") i nie ustawiaj ręcznie Content-Type |
| Możliwe tylko JSON + base64 | Pamiętaj, że Content-Length musi być liczbą bajtów (Buffer.byteLength), inaczej ciało żądania może zostać ucięte |
Po zakończeniu przesyłania zawsze potwierdź, że status w odpowiedzi jest już stanem ukończonym, i zapisz clip_id, zanim przejdziesz do kroku 2;
nieudane przesyłanie nie jest rozliczane i nie tworzy zadania generowania — wystarczy ponowić.
Parametry żądania
Headers
Dla żądań JSON:
| Parametr | Typ | Wymagany | Uwagi |
|---|---|---|---|
| Authorization | string | tak | Bearer YOUR_API_KEY |
| Content-Type | string | tak | application/json |
W żądaniach multipart nie ustawiaj Content-Type ręcznie; klient generuje go automatycznie.
Parametry body
| Parametr | Typ | Wymagany | Domyślnie | Uwagi |
|---|---|---|---|---|
| model | string | nie | suno-v6 | Nazwa modelu dla klienta: suno-v6, suno-v6-wild lub suno-v6-mini |
| file_url | string | nie | - | URL zdalnego dźwięku |
| file_base64 | string | nie | - | Dźwięk w Base64 |
| file_name | string | nie | - | Nazwa pliku |
| upload_type | string | nie | file_upload | Typ przesyłania |
Przykład żądania JSON
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"file_url": "https://example.com/source.mp3",
"file_name": "source.mp3",
"upload_type": "file_upload"
}'
Przykład żądania multipart
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@source.mp3" \
-F "file_name=source.mp3" \
-F "upload_type=file_upload" \
-F "model=suno-v6"
Odpowiedź
{
"clip_id": "uploaded_clip_id",
"status": "complete",
"title": "source.mp3",
"image_url": "https://...",
"audio_url": "https://...",
"display_tags": "pop, vocal",
"inferred_description": "uploaded source audio",
"clip_metadata": {}
}
Uzyskaj klucz API
Po rejestracji utwórz klucz API w konsoli. Każde generowanie kosztuje 0,6 ¥ i zwraca 2 utwory, pobierania są nieograniczone, a numer telefonu nie jest wymagany.
Pobierz klucz API Powrót do przeglądu