Перейти к содержимому
EN

Suno 6

Suno 6 (suno-music-generate, короткие имена suno и suno-v6; старое suno-v5 продолжает работать) — генерация песни с вокалом по текстовому промпту. Выдаёт 2 трека за раз. Генерация асинхронная, как у видео: создание задачи, опрос статуса, скачивание готовых mp3. Модель платная — запросы списываются с баланса.

Запрос создаётся на POST /v1/audio/music:

Поле Описание
model suno или suno-v6 (полный ключ — suno-music-generate; suno-v5 — старый синоним)
prompt Описание трека до 5000 знаков; обязательно в режиме simple
mode simple (по prompt) или custom (по lyrics + style + title); по умолчанию simple
lyrics Текст песни; обязателен в режиме custom, до 5000 знаков
style Жанр, стиль, теги; до 500 знаков
title Название трека; до 200 знаков

Запрос с mode: simple без prompt или с mode: custom без lyrics вернёт 400.

import time
import requests
API = "https://api.mixen.ai/v1/audio/music"
headers = {"Authorization": f"Bearer {MIXEN_API_KEY}"}
job = requests.post(
API,
headers=headers,
json={"model": "suno", "prompt": "Меланхоличный синти-поп о ночном городе, женский вокал"},
).json()
while job["status"] in ("queued", "in_progress"):
time.sleep(5)
job = requests.get(f"{API}/{job['id']}", headers=headers).json()
for i in (0, 1): # Suno выдаёт два трека за одну оплату
mp3 = requests.get(f"{API}/{job['id']}/content", params={"index": i}, headers=headers)
with open(f"track_{i}.mp3", "wb") as f:
f.write(mp3.content)

Когда нужен конкретный текст, а не сгенерированный:

{
"model": "suno",
"mode": "custom",
"title": "Ночной трамвай",
"style": "indie rock, 90s, мужской вокал, живые барабаны",
"lyrics": "Первый куплет...\n\nПрипев..."
}

Статусы те же, что у видео: queuedin_progresscompleted либо failed; в готовом ответе — массив tracks с index и title.

curl https://api.mixen.ai/v1/audio/music/music_... \
-H "Authorization: Bearer $MIXEN_API_KEY"
curl -L "https://api.mixen.ai/v1/audio/music/music_.../content?index=1" \
-H "Authorization: Bearer $MIXEN_API_KEY" -o track_1.mp3

Два трека за один запрос — особенность модели, а не ошибка: оба видны в ответе на опрос, конкретный скачивается параметром ?index=N эндпоинта /audio/music/{id}/content (нумерация с нуля, по умолчанию 0). Эндпоинт отдаёт mp3 и поддерживает Range-запросы. Задача, не завершившаяся за 15 минут, помечается failed при следующем опросе и не оплачивается.

8.0216 ₽ ($0.09) за запрос — поле per_request_rub в каталоге. Музыка тарифицируется за запрос, а не за секунду: два трека Suno — одна оплата.

  • Песня с вокалом по текстовому промпту; за один запрос — два варианта трека.
  • Авторский режим: свой текст песни, жанр и название.
  • Два трека за одну оплату — выбирайте лучший из ответа на опрос.
  • Инструментальные треки без вокала — модель Lyria, общий порядок — гайд по музыке.
  • Работает только с баланса; зависшая по таймауту задача не оплачивается.

Все модели — в каталоге. Полный порядок работы с музыкой — гайд по музыке.