SunoAudio
Música
Dos pistas por toma con Suno.
- Precio
- 12 crpor toma · 30 s
- Tiempo habitual
- ≈ 2 min
- Id del modelo
audio.music
Zona de pruebas
- Duración
- 10-360 s
- Admite
- Texto
Aún no hay un ejemplo de este modelo. Estos son sus ajustes reales.
# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
JOB_ID=$(curl -s -X POST https://mobyvid.com/api/v1/jobs \
-H "Authorization: Bearer $STAGLIGHT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"op": "audio.music",
"params": {
"duration": 30
},
"max_credits": 12
}' | jq -r .id)
# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while :; do
JOB=$(curl -s "https://mobyvid.com/api/v1/jobs/$JOB_ID?wait=30" -H "Authorization: Bearer $STAGLIGHT_API_KEY")
case "$(echo "$JOB" | jq -r .status)" in queued|running) ;; *) break ;; esac
done
# 3. Descarga el resultado desde outputs[0].download_url.
DOWNLOAD_URL=$(echo "$JOB" | jq -r '.outputs[0].download_url')
curl -L -o result.mp3 "$DOWNLOAD_URL"
import os, uuid, requests
BASE = "https://mobyvid.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['STAGLIGHT_API_KEY']}"}
# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
r = requests.post(f"{BASE}/jobs", timeout=60,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json={
"op": "audio.music",
"params": {
"duration": 30
},
"max_credits": 12
})
r.raise_for_status()
job = r.json()
# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while job["status"] in ("queued", "running"):
job = requests.get(f"{BASE}/jobs/{job['id']}", headers=HEADERS,
params={"wait": 30}, timeout=60).json()
# 3. Descarga el resultado desde outputs[0].download_url.
print(job["outputs"][0]["download_url"] if job["outputs"] else job["data"] or job["error"])
// Node 18 o posterior. Guárdalo como run.mjs: el await de nivel superior necesita un módulo.
const BASE = "https://mobyvid.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.STAGLIGHT_API_KEY}` };
// 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
let res = await fetch(`${BASE}/jobs`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },
body: JSON.stringify({
"op": "audio.music",
"params": {
"duration": 30
},
"max_credits": 12
}),
});
if (!res.ok) throw new Error((await res.json()).error.message);
let job = await res.json();
// 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while (job.status === "queued" || job.status === "running") {
job = await (await fetch(`${BASE}/jobs/${job.id}?wait=30`, { headers })).json();
}
// 3. Descarga el resultado desde outputs[0].download_url.
console.log(job.outputs[0]?.download_url ?? job.data ?? job.error);
{
"id": "job_19a2b3c4d5e6f7a8b9c0d1",
"op": "audio.music",
"status": "queued",
"credits": 12,
"title": "",
"params": {
"duration": 30
},
"progress": null,
"outputs": [],
"data": null,
"error": null,
"run_id": null,
"source": "api",
"created_at": "2026-11-06T12:00:00Z",
"finished_at": null,
"eta_seconds": 90
}
Cuánto cuesta
12 cr por ejecución. Los ajustes no cambian el precio.
La zona de pruebas muestra el precio exacto de tus ajustes. La tarea se cobra una vez al aceptarla y se reembolsa si falla.
Parámetros
| Nombre | Tipo | Por defecto | Valores |
|---|---|---|---|
promptIdea de la pista |
string |
Hasta 3.000 caracteres | |
styleEstilo |
string |
Hasta 1.000 caracteres | |
instrumentalInstrumental |
boolean |
true |
|
durationDuración (s) |
integer |
30 |
10 - 360 |
titleTítulo |
string |
Hasta 80 caracteres | |
lyricsLetra |
string |
Hasta 5.000 caracteres | |
vocal_genderVoz cantada |
enum |
any |
any, f, m |
Envíalos dentro de params. Los archivos son ids de POST /api/v1/uploads. Ver la documentación
Más modelos
-
Audioaudio.tts
- Voces
- 66
- Idiomas
- 7
- Admite
- Texto
ElevenLabs / Voz en off
Locución a partir de tu guion con ElevenLabs, con el tiempo de cada palabra para los subtítulos.
5 crpor toma · varía con la duración o el tamaño
-
Audioaudio.sfx
- Admite
- Texto
Suno / Efectos de sonido
Efectos cortos a partir de una descripción: golpes, ambientes y transiciones.
3 crpor toma
-
Audioaudio.dialogue
- Idiomas
- 7
- Admite
- Texto
ElevenLabs / Diálogo
Una conversación de hasta 4 voces a partir de un solo guion con ElevenLabs v3: una línea por turno, como "Ana: ¿Ya lo probaste?".
6 crpor toma · varía con la duración o el tamaño