Музыкальный формат Suno (Музыка)
пожалуйста, обратите внимание
Этот интерфейс не является официальным интерфейсом Suno, но основан на проекте с открытым исходным кодом автора Plato. Suno-API реализует прокси-интерфейс Suno.
Мы очень благодарны автору за его вклад, который позволяет нам легко использовать мощные функции Suno. Если у вас есть время, поставьте, пожалуйста, звезду автору.
📝 Введение
Suno Music API предоставляет ряд функций создания и обработки музыки, в том числе:
-
Создавайте песни в соответствии с подсказками (режим вдохновения, пользовательский режим)
-
Продолжать писать существующие песни
-
Соединение нескольких аудиоклипов
-
Генерировать тексты песен
-
Загрузить аудио
API-интерфейсы упрощают интеграцию возможностей создания музыки с помощью искусственного интеллекта в ваши приложения.
💡 Пример запроса
Генерация песен ✅
curl --location 'https://88api.ai/suno/submit/music' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"prompt":"[Verse]\nWalking down the streets\nBeneath the city lights\nNeon signs flickering\nLighting up the night\nHeart beating faster\nLike a drum in my chest\nI'\''m alive in this moment\nFeeling so blessed\n\nStilettos on the pavement\nStepping with grace\nSurrounded by the people\nMoving at their own pace\nThe rhythm of the city\nIt pulses in my veins\nLost in the energy\nAs my worries drain\n\n[Verse 2]\nConcrete jungle shining\nWith its dazzling glow\nEvery corner hiding secrets that only locals know\nA symphony of chaos\nBut it'\''s music to my ears\nThe hustle and the bustle\nWiping away my fears",
"tags":"emotional punk",
"mv":"chirp-v4",
"title":"City Lights"
}'Пример ответа:
{
"code": "success",
"message": "",
"data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}Генерировать тексты песен ✅
curl --location 'https://88api.ai/suno/submit/lyrics' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"prompt":"dance"
}'Пример ответа:
{
"code": "success",
"message": "",
"data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}Загрузить аудио ❌
curl --location 'https://88api.ai/suno/uploads/audio-url' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"url":"http://cdnimg.example.com/ai/2024-06-18/d416d9c3c34eb22c7d8c094831d8dbd0.mp3"
}'Пример ответа:
{
"code": "success",
"message": "",
"data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}Сращивание песен ❌
curl --location 'https://88api.ai/suno/submit/concat' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"clip_id":"extend позже песняID",
"is_infill": false
}'Пример ответа:
{
"code": "success",
"message": "",
"data": "736a6f88-bd29-4b1e-b110-37132a5325ac"
}Проверьте статус задачи ✅
Пакетный запрос
curl --location 'https://88api.ai/suno/fetch' \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"ids":["task_id"],
"action":"MUSIC"
}'Пример ответа:
{
"code": "success",
"message": "",
"data": [
{
"task_id": "346c5d10-a4a1-4f49-a851-66a7dae6cfaf",
"notify_hook": "",
"action": "MUSIC",
"status": "IN_PROGRESS",
"fail_reason": "",
"submit_time": 1716191749,
"start_time": 1716191786,
"finish_time": 0,
"progress": "0%",
"data": [
{
"id": "e9893d04-6a63-4007-8473-64b706eca4d1",
"title": "Electric Dance Party",
"status": "streaming",
"metadata": {
"tags": "club banger high-energy edm",
"prompt": "немного",
"duration": null,
"error_type": null,
"error_message": null,
"audio_prompt_id": null,
"gpt_description_prompt": "miku dance"
},
"audio_url": "https://audiopipe.suno.ai/?item_id=e9893d04-6a63-4007-8473-64b706eca4d1",
"image_url": "https://cdn1.suno.ai/image_e9893d04-6a63-4007-8473-64b706eca4d1.png",
"video_url": "",
"model_name": "chirp-v3",
"image_large_url": "https://cdn1.suno.ai/image_large_e9893d04-6a63-4007-8473-64b706eca4d1.png",
"major_model_version": "v3"
}
]
}
]
}Одиночный запрос
curl --location 'https://88api.ai/suno/fetch/{{task_id}}' \
--header 'Authorization: Bearer $API_KEY'Пример ответа:
{
"code": "success",
"message": "",
"data": {
"task_id": "f4a94d75-087b-4bb1-bd45-53ba293faf96",
"notify_hook": "",
"action": "LYRICS",
"status": "SUCCESS",
"fail_reason": "",
"submit_time": 1716192124,
"start_time": 1716192124,
"finish_time": 1716192124,
"progress": "100%",
"data": {
"id": "f4a94d75-087b-4bb1-bd45-53ba293faf96",
"text": "немного",
"title": "Electric Fantasy",
"status": "complete"
}
}
}📮 Запрос
Все запросы должны включать информацию аутентификации в заголовке запроса:
Authorization: Bearer $API_KEYКонечная точка
Генерация песен
POST /suno/submit/musicСоздавайте новые песни, поддерживайте режим вдохновения, пользовательский режим и продолжение.
Генерировать тексты песен
POST /suno/submit/lyricsСоздавайте тексты песен на основе подсказок.
Загрузить аудио
POST /suno/uploads/audio-urlЗагрузите аудиофайлы.
Сращивание песен
POST /suno/submit/concatОбъедините несколько аудиоклипов в полноценную песню.
Пакетный запрос статуса задачи
POST /suno/fetchПолучайте статус и результаты нескольких задач в пакетном режиме.
Запрос статуса отдельной задачи
GET /suno/fetch/{{task_id}}Запрос состояния и результатов одной задачи.
Параметры тела запроса
Генерация песен
prompt
- Тип: строка
- Обязательно: не требуется в режиме вдохновения, требуется в пользовательском режиме.
- Описание: содержание текста песни, необходимое в пользовательском режиме.
prompt
- Тип: строка
- Требуется: Нет
- Описание: версия модели, необязательные значения: chirp-v3-0, chirp-v3-5, по умолчанию — chirp-v3-0.
prompt
- Тип: строка
- Обязательно: не требуется в режиме вдохновения, требуется в пользовательском режиме.
- Описание: название песни, необходимое в пользовательском режиме.
prompt
- Тип: строка
- Обязательно: не требуется в режиме вдохновения, требуется в пользовательском режиме.
- Описание: теги стиля песни, разделенные запятыми, необходимые в пользовательском режиме.
prompt
- Тип: Логический
- Требуется: Нет
- Описание: Создавать ли чистую музыку, правда означает создание чистой музыки.
prompt
- Тип: строка
- Обязательно: Требуется для продолжения.
- Описание: идентификатор задачи песни, которую нужно продолжить.
prompt
- Тип: Поплавок
- Обязательно: Требуется для продолжения.
- Описание: Продолжайте писать с первых секунд песни.
prompt
- Тип: строка
- Обязательно: Требуется для продолжения.
- Описание: ID клипа песни, продолжение которой будет продолжено.
prompt
- Тип: строка
- Обязательно: требуется для режима вдохновения, не требуется для других режимов.
- Описание: текстовое описание источника вдохновения.
prompt
- Тип: строка
- Требуется: Нет
- Описание: адрес уведомления об обратном вызове после завершения генерации песни.
Генерировать тексты песен
prompt
- Тип: строка
- Требуется: Да
- Описание: тема или ключевое слово текста песни.
prompt
- Тип: строка
- Требуется: Нет
- Описание: адрес уведомления об обратном вызове, когда генерация текста завершена.
Загрузить аудио
prompt
- Тип: строка
- Требуется: Да
- Описание: URL-адрес загружаемого аудиофайла.
Сращивание песен
prompt
- Тип: строка
- Требуется: Да
- Описание: идентификатор фрагментов песни, которые нужно соединить.
prompt
- Тип: Логический
- Требуется: Нет
- Описание: режим заполнения.
Запрос задачи
prompt
- Тип: строка[]
- Требуется: Да
- Описание: список идентификаторов задач, которые будут запрошены.
prompt
- Тип: строка
- Требуется: Нет
- Описание: тип задачи, необязательные значения: МУЗЫКА, ТЕКСТ.
📥 Ответ
Все интерфейсы возвращают ответ в едином формате JSON:
{
"code": "success",
"message": "",
"data": "{{RESULT}}"
}Успешный ответ
Основные поля ответа
code
- Тип: строка
- Описание: Статус запроса, успех есть успех.
code
- Тип: строка
- Описание: Сообщение об ошибке при сбое запроса.
code
- Тип: зависит от разных интерфейсов.
- Описание: Возвращает данные в случае успешного запроса.
- Создавайте песни, тексты песен, загружайте аудио и интерфейс объединения песен: возвращайте строку идентификатора задачи.
- Интерфейс запроса задачи: возврат объекта задачи или массива объектов задачи.
Объекты, связанные с задачами
Объект задачи
code
- Тип: строка
- Описание: Идентификатор задачи.
code
- Тип: строка
- Описание: адрес уведомления об обратном вызове после завершения задачи.
code
- Тип: строка
- Описание: тип задачи, необязательные значения: МУЗЫКА, ТЕКСТ.
code
- Тип: строка
- Описание: статус задачи, необязательные значения: IN_PROGRESS, SUCCESS, FAIL.
code
- Тип: строка
- Описание: Причина провала миссии.
code
-Тип: целое число
- Описание: отметка времени отправки задачи.
code
-Тип: целое число
- Описание: временная метка запуска задачи.
code
-Тип: целое число
- Описание: временная метка завершения задачи.
code
- Тип: строка
- Описание: процент выполнения миссии.
code
- Тип: зависит от типа задачи.
- Описание:
- Задача создания музыки: массив объектов песни.
- Задача создания текста песни: объект текста песни
Объект песни
code
- Тип: строка
- Описание: Идентификатор песни
code
- Тип: строка
- Описание: Название песни.
code
- Тип: строка
- Описание: статус песни.
code
- Тип: Объект
- Описание: Метаданные песни.
- теги: теги стиля песни
- подсказка: генерировать тексты песен.
- продолжительность: продолжительность песни
- error_type: тип ошибки
- error_message: сообщение об ошибке
- audio_prompt_id: идентификатор звукового приглашения
- gpt_description_prompt: описание источника вдохновения.
audio_url
- Тип: строка
- Описание: URL-адрес аудио песни.
audio_url
- Тип: строка
- Описание: URL-адрес обложки песни.
audio_url
- Тип: строка
- Описание: URL-адрес видео песни.
audio_url
- Тип: строка
- Описание: название модели, использованной для создания песни.
audio_url
- Тип: строка
- Описание: основной номер версии модели.
Объект текста
audio_url
- Тип: строка
- Описание: Идентификатор текста
audio_url
- Тип: строка
- Описание: Лирическое содержание
audio_url
- Тип: строка
- Описание: название текста
audio_url
- Тип: строка
- Описание: статус текста песни
🌟 Лучшие практики
-
Предоставьте как можно более подробные и конкретные советы по созданию песен или текстов, чтобы не быть слишком общими или абстрактными.
-
При запросе статуса задачи интервал опроса рекомендуется составлять 2–5 секунд, чтобы избежать слишком частого опроса.
-
В режиме вдохновения вам нужно указать только параметр gpt_description_prompt, и API автоматически сгенерирует тексты песен, заголовки, теги и т. д.
-
Пользовательский режим должен предоставлять параметры приглашения, заголовка и тегов, которые могут иметь больший контроль над песней.
-
Попробуйте использовать последнюю версию модели (например, chirp-v4), эффект будет лучше.
-
Использование функции обратного уведомления (параметр notify_hook) позволяет снизить частоту опроса и повысить эффективность.
-
Функции продолжения и склейки музыки позволяют создавать более богатые и полные произведения на основе оригинальной музыки.
-
Обратите внимание на обработку возможных исключений и ошибок, таких как тайм-аут сети, сбой проверки параметров и т. д.