API Replace Section (zamiana fragmentu)

Zaktualizowano 2026-09-18 · zespół Suno-API

Opis punktu końcowego

Replace Section regeneruje w miejscu jeden przedział czasu istniejącego utworu. Nadaje się do poprawienia wersu tekstu lub wymiany fragmentu.

Punkt końcowy: POST /api/music/replace-section

Rozliczenie: Płatne, obecnie domyślnie 0,6 ¥ za wywołanie. Faktycznie pobierana kwota zależy od bieżącej konfiguracji cen w panelu administracyjnym.

Max Mode / Variety: ten punkt końcowy obsługuje opcjonalne parametry max_mode i variety (0-4). Przy włączonym max_mode to wywołanie jest rozliczane po podwójnej cenie (0,6 → 1,2 ¥ za wywołanie); variety nie kosztuje nic dodatkowo. Znaczenie i sposób wysyłania opisano w sekcji „Parametry zaawansowane” Przeglądu nowego API.

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.

Parametry żądania

Headers

Parametr Typ Wymagany Uwagi
Authorization string tak Bearer YOUR_API_KEY
Content-Type string tak application/json

Parametry treści

Parametr Typ Wymagany Domyślnie Uwagi
model string nie suno-v6 Nazwa modelu dla klienta: suno-v6, suno-v6-wild lub suno-v6-mini
audioId string tak - ID oryginalnego utworu
startSeconds number tak - Sekunda początku zamiany; dozwolone ułamki. Fragment musi mieć co najmniej 2 sekundy
endSeconds number tak - Sekunda końca zamiany; dozwolone ułamki. Musi być większa niż startSeconds, a przedział musi mieścić się w długości oryginalnego utworu
contextLyrics string tak - Pełny tekst całego utworu jako kontekst generowania (zgodny zapis prompt). Bez tego zwracany jest błąd 400
contextWindowLyrics string nie jak contextLyrics Tekst wokół zamienianego fragmentu (wystarczy zdanie lub dwa przed i po), używany do łączenia; gdy go nie ma, używany jest contextLyrics
infillLyrics string nie jak contextLyrics Nowy tekst wstawiany w to miejsce; gdy go nie ma, używany jest contextLyrics (czyli ponowne zaśpiewanie tego fragmentu z oryginalnym tekstem)
style string nie - Tagi stylu
title string nie - Tytuł
negativeTags string nie - Wykluczone style
requestedAt number nie - Znacznik czasu żądania

startSeconds i endSeconds podaje się w sekundach i można użyć ułamków; startSeconds musi być mniejsze niż endSeconds, a przedział musi mieścić się w długości oryginalnego utworu. requestedAt służy tylko do przekazania czasu żądania jako znacznik czasu Unix w sekundach (nie w milisekundach); zwykle można je pominąć.

Zamiana to również zadanie asynchroniczne. Zwrócony clip może zaczynać od stanu pending, a pusty adres audio w tym momencie jest normalny; użyj zwróconego prawdziwego song_id, aby pobrać wynik końcowy.

Długość fragmentu: co najmniej 2 sekundy (ważne)

Zamieniany przedział nie może być krótszy niż 2 sekundy. Z pomiarów: przedziały 1,0 / 1,2 / 1,5 sekundy kończyły się niepowodzeniem, a 2,0 sekundy i więcej działały.

Gdy przedział jest zbyt krótki, platforma nie odpowiada „błędem parametru”, lecz komunikatem, który łatwo zrozumieć błędnie:

{"error":{"message":"You don't have access to this model. Upgrade your plan to use it.",
          "type":"bad_response_status_code","code":"bad_response_status_code"}}

To zdanie nie oznacza problemu z kontem ani planem — fragment jest zbyt krótki. Wydłuż przedział powyżej 2 sekund i wyślij ponownie.

Przykład żądania

curl -X POST https://www.suno-api.io/api/music/replace-section \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "audioId": "clip_id",
    "startSeconds": 30,
    "endSeconds": 45,
    "contextLyrics": "pełny tekst kontekstowy",
    "contextWindowLyrics": "tekst kontekstowy okna",
    "infillLyrics": "tekst zamiany",
    "style": "Mandopop, acoustic",
    "title": "Wersja zamieniona",
    "negativeTags": "noise"
  }'

Odpowiedź

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "replace_clip_id",
        "song_title": "Wersja zamieniona",
        "status": "pending"
      }
    ],
    "replaceTask": "infill",
    "clipId": "clip_id",
    "source_update": {}
  }
}

Pola zgodne

NastępnyAPI dodawania podkładu instrumentalnego

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