API rozdzielania (wokal i podkład)
Opis punktu końcowego
Rozdzielanie dzieli istniejący utwór na wokal, podkład lub wynik wielościeżkowy. Zalecany przebieg integracji:
- Jeśli dźwięk źródłowy nie jest utworem wygenerowanym na tej platformie, najpierw wywołaj API przesyłania dźwięku źródłowego.
- Wywołaj
POST /api/music/separate, aby zgłosić zadanie rozdzielania. - Odpytuj wynik przez API zapytań o utwory i historii.
- Pobierz plik dźwiękowy każdego wyniku rozdzielania punktami końcowymi pobierania.
Punkt końcowy: POST /api/music/separate
Rozliczenie: Płatne. stem_mode=two obecnie domyślnie 0,6 ¥ za wywołanie; stem_mode=twelve to podział wielościeżkowy i obecnie domyślnie 3,0 ¥ za wywołanie. Faktycznie pobierana kwota zależy od konfiguracji cen w panelu administracyjnym.
Czasy oczekiwania i limity czasu (ważne): to punkt końcowy synchroniczny — zamówienie zostaje przyjęte i przekazane do generowania dopiero, gdy przyjdzie odpowiedź. Z pomiarów: większość żądań odpowiada w 1-3 sekundy, około 10% przekracza 30 sekund, a najdłuższe trwa około 230 sekund. Ustaw limit czasu klienta na 300 sekund lub więcej; brak odpowiedzi nie oznacza, że nic nie zostało wygenerowane, a ponawianie od razu po limicie czasu duplikuje zamówienie i pobiera opłatę ponownie. Jeśli połączenie się zerwało, sprawdź później przez
GET /api/music/songs. Zobacz „Czasy oczekiwania i ustawienia limitu czasu” w Przeglądzie nowego API.
Uwierzytelnianie
| Parametr | Typ | Wymagany | Uwagi |
|---|---|---|---|
| Authorization | string | tak | Bearer YOUR_API_KEY |
| Content-Type | string | tak | application/json |
Parametry żądania
| Parametr | Typ | Wymagany | Domyślnie | Uwagi |
|---|---|---|---|---|
| song_id | string | tak | - | ID utworu źródłowego do rozdzielenia |
| stem_mode | string | tak | - | Tryb rozdzielania: two lub twelve |
| source_audio_url | string | nie | - | URL dźwięku źródłowego |
| source_file_name | string | nie | - | Nazwa pliku dźwięku źródłowego |
| source_title | string | nie | - | Tytuł utworu źródłowego |
O stem_mode
| Wartość | Zwracane pozycje | Uwagi |
|---|---|---|
two |
4 | Rozdzielenie na dwie ścieżki: wokal + podkład. Jedno zgłoszenie daje 2 wersje × 2 ścieżki |
twelve |
24 | Podział wielościeżkowy: 2 wersje × 12 ścieżek; nazwy ścieżek w tabeli poniżej |
O rozdzielaniu
Rozdzielanie to niezależna, stała funkcja: nie trzeba podawać ani wybierać modelu generowania utworów. Klient wysyła tylko utwór źródłowy i stem_mode; serwer zajmuje się resztą zgodnie z trybem.
Skąd biorą się liczby: jedno zgłoszenie tworzy 2 wersje (dwa wyniki z tego samego materiału), więc liczba = 2 × liczba ścieżek danego trybu: 4 dla two i 24 dla twelve.
Zawsze kieruj się rzeczywistą długością tablicy clips w odpowiedzi; nie pisz pętli po stałej liczbie (pojedyncze ścieżki mogą się nie udać, a udane wracają normalnie).
Jakie ścieżki zwraca każdy tryb
12 ścieżek trybu twelve (nazwy nadaje platforma; kolejność może się zmieniać):
| # | Nazwa ścieżki | Uwagi |
|---|---|---|
| 1 | (Vocals) |
Wokal prowadzący |
| 2 | (Backing Vocals) |
Harmonie / chórki |
| 3 | (Drums) |
Perkusja |
| 4 | (Bass) |
Bas |
| 5 | (Guitar) |
Gitara |
| 6 | (Keyboard) |
Klawisze / fortepian |
| 7 | (Percussion) |
Instrumenty perkusyjne |
| 8 | (Strings) |
Smyczki |
| 9 | (Synth) |
Syntezator |
| 10 | (FX) |
Efekty / ambient |
| 11 | (Brass) |
Instrumenty dęte blaszane |
| 12 | (Woodwinds) |
Instrumenty dęte drewniane |
Tryb two zwraca dwie ścieżki, (Vocals) i (Instrumental), każda w 2 wersjach.
Nazwy ścieżek w two i twelve to stałe nazwy (nie zawierają nazwy utworu źródłowego), więc nie licz na to, że z tytułu poznasz, z którego utworu pochodzi ścieżka.
Nazw ścieżek nie można używać jako klucza unikalnego. W dwóch wersjach występują ścieżki o tej samej nazwie (na przykład dwie
(Vocals), dwie(Strings)), a jedno rozdzielanie zwraca wiele ścieżek. Zawsze używajsong_idjako identyfikatora, asong_titletylko do wyświetlania; nie używaj też indeksów tablicy (kolejność może się zmieniać).
Przykłady żądania
Rozdzielenie wokalu / podkładu (stem_mode: "two")
curl -X POST https://www.suno-api.io/api/music/separate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "source_clip_id",
"stem_mode": "two",
"source_audio_url": "https://example.com/source.mp3",
"source_file_name": "source.mp3",
"source_title": "Source Song"
}'
Podział wielościeżkowy (stem_mode: "twelve")
curl -X POST https://www.suno-api.io/api/music/separate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "source_clip_id",
"stem_mode": "twelve",
"source_audio_url": "https://example.com/source.mp3"
}'
Odpowiedź
W przypadku powodzenia zwykle zwracana jest tablica wyników rozdzielania. Każdy wynik to niezależny klip utworu, który trzeba dalej odpytwać, aż status osiągnie stan zakończony.
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "stem_clip_id_1",
"song_title": "(Vocals)",
"status": "pending",
"generation_type": "separate",
"created_at": "2026-06-06T10:00:00Z"
},
{
"song_id": "stem_clip_id_2",
"song_title": "(Instrumental)",
"status": "pending",
"generation_type": "separate",
"created_at": "2026-06-06T10:00:00Z"
}
]
}
}
Powyżej pokazano tylko 2 z 4 pozycji trybu
two; w praktyce zwracane są 4 (2 wersje × {(Vocals),(Instrumental)}); trybtwelvezwraca 24. Rzeczywista liczba to długość tablicyclips.
Klient zwykle musi zapisać tylko clips[].song_id; kolejne odpytania i pobierania krążą wokół tych ID.
Uwagi
- Wyniki rozdzielania nie pojawiają się w historii
GET /api/music/songs(ta lista zwraca tylko zwykłe wygenerowane utwory). Po udanym zgłoszeniu od razu zapiszclips[].song_id, inaczej później nie będzie jak ich znaleźć. - Każda ścieżka to niezależne dzieło: każda ma własne
song_idi trzeba ją osobno odpytwać do zakończenia oraz osobno pobierać. - Rozliczenie nie zależy od liczby pozycji: płatne za wywołanie (
two0,6 ¥ za wywołanie,twelve3,0 ¥ za wywołanie), a 4 czy 24 pozycje kosztują tyle samo. - Pobieranie: użyj
song_idtej ścieżki zPOST /api/music/download-url/download-file(bezpłatnie) albo wprostaudio_urlz wyniku odpytania; o MIDI przeczytasz w API pobierania MIDI. - Nie zgłaszaj dwa razy: rozdzielanie to punkt końcowy synchroniczny, więc po przekroczeniu limitu czasu najpierw sprawdź przez zapytanie o utwory, a nie ponawiaj od razu (to duplikuje zamówienie i pobiera opłatę ponownie).
- Niepotrzebne ścieżki ukryj przez API usuwania ścieżek rozdzielonych.
Odpytywanie wyników rozdzielania
Po udanym zgłoszeniu odpytaj wyniki za pomocą clips[].song_id przez POST /api/music/query.
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": "stem_clip_id_1,stem_clip_id_2"
}'
Przykład zakończonego odpytania:
[
{
"song_id": "stem_clip_id_1",
"song_title": "(Vocals)",
"status": "complete",
"audio_url": "https://...",
"cover_url": "https://...",
"duration": 180.5,
"generation_type": "separate",
"stem_from_id": "source_clip_id"
}
]
Pobieranie plików ścieżek
Gdy wynik rozdzielania jest gotowy, możesz pobrać pojedynczy plik ścieżki punktem końcowym pobierania.
Punkt końcowy: POST /api/music/download-file
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "stem_clip_id_1",
"kind": "audio"
}' \
--output stem.mp3
kind obsługuje:
| kind | Uwagi |
|---|---|
audio / song / music |
Pobierz dźwięk MP3 |
cover / image |
Pobierz okładkę |
wav |
Pobierz dźwięk WAV |
video / mp4 |
Pobierz wideo |
Aby pobrać powiązane zasoby jednego wyniku rozdzielania w paczce, wywołaj:
curl -X POST https://www.suno-api.io/api/music/download-all \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "stem_clip_id_1"
}' \
--output stem-resources.zip
Opis statusów
| Status | Uwagi |
|---|---|
pending |
Zgłoszone, czeka na przetworzenie |
queued |
W kolejce |
generating / processing |
W trakcie przetwarzania |
complete / completed |
Zakończone |
error / failed |
Niepowodzenie; sprawdź error_message |
Częste błędy
| Status HTTP | Uwagi | Sugerowane postępowanie |
|---|---|---|
| 400 | Błędne parametry, np. brak song_id lub stem_mode |
Sprawdź parametry żądania |
| 401 | Klucz API nieprawidłowy lub nieprzekazany | Sprawdź Authorization |
| 402 | Niewystarczające saldo | Doładuj i spróbuj ponownie |
| 409 | Utworu źródłowego nie można teraz przetworzyć | Sprawdź song_id lub spróbuj później |
| 500/503 | Chwilowa awaria usługi lub platformy | Spróbuj później lub skontaktuj się ze wsparciem technicznym |
Uwagi o zgodności
Starsza dokumentacja używała przykładów z pojedynczym obiektem, takich jak success/task_id/vocals_url/instrumental_url. Obecne rozdzielanie opiera się na tablicy utworów clips[]: każdy wynik ma własne song_id, a kolejne odpytania i pobierania krążą wokół tych song_id.
Powiązane strony
- Jeśli chcesz tylko oddzielić wokal od podkładu bez wybierania trybu, użyj API usuwania wokalu; to szybka dwuścieżkowa forma tego punktu końcowego i obecnie jest bezpłatna.
- Niepotrzebne ścieżki rozdzielania ukryj przez API usuwania ścieżek rozdzielonych (usunięcie miękkie, bez opłat).
- MIDI ścieżki znajdziesz w API pobierania MIDI; dźwięk, okładkę i inne media w API pobierania i odsłuchu mediów utworów.
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