Para desarrolladores
API de AI Music Video
Envía una canción y recibe un videoclip. Paga solo por lo que usas. Añade créditos a tu cuenta y cada vídeo consume tantos créditos como minutos dura, redondeando hacia arriba.
1. Consigue una clave
Inicia sesión, abre Mis vídeos y crea una clave en “Claves de API”. La clave y un secreto de firma de callbacks solo se muestran una vez. Envía la clave en cada solicitud:
Authorization: Bearer aimv_… URL base: https://clipmysong.com/api/v1
2. Añade créditos
Compra un pack de créditos (25 créditos por 10 €, 50 por 20 €, 125 por 50 €) o un plan mensual en la página de precios. La API y la web usan el mismo saldo.
curl -s https://clipmysong.com/api/v1/balance -H "Authorization: Bearer $AIMV_KEY"
3. Crea un vídeo
Sube la canción como archivo o indica un enlace https. Las imágenes y una breve descripción son opcionales.
curl -s https://clipmysong.com/api/v1/videos \
-H "Authorization: Bearer $AIMV_KEY" \
-H "Idempotency-Key: my-order-1042" \
-F audio=@song.mp3 \
-F images[]=@cover.jpg \
-F rights_confirmed=true \
-F brief="a road trip at sunset, warm colours, the sea at the end" \
-F resolution=720p -F aspect=16:9 \
-F callback_url=https://example.com/hooks/aimv Con un enlace en lugar de un archivo (JSON):
curl -s https://clipmysong.com/api/v1/videos \
-H "Authorization: Bearer $AIMV_KEY" \
-H "Content-Type: application/json" \
-d '{"audio_url":"https://example.com/song.mp3","image_urls":["https://example.com/cover.jpg"],"rights_confirmed":true}' | Campo | Significado |
|---|---|
audio / audio_url | MP3, WAV, M4A, FLAC u OGG, de 20 s a 8 min, hasta 50 MB. Enlaces solo por https y a servidores públicos, sin redirecciones a redes privadas. |
images[] / image_urls[] | Hasta 10 imágenes JPG, PNG o WEBP, de 10 MB cada una. Se recodifican y se revisan; las imágenes con personas reconocibles necesitan people_consent=true. |
rights_confirmed | Obligatorio. true significa que la canción y las imágenes son tuyas o tienes derecho a usarlas. |
brief | Opcional, hasta 600 caracteres sobre lugares, colores o ambiente. Solo se usa para elegir escenas de nuestra lista fija; nunca se ejecuta como instrucción. |
resolution | 720p (por defecto) o 1080p (plan Creator). |
aspect | 16:9 (por defecto) o 9:16. |
title, people_consent | Opcional. |
callback_url | Dirección https opcional que recibe un POST firmado cuando el vídeo está listo o ha fallado. |
Idempotency-Key | Cabecera opcional (de 8 a 64 caracteres). Si envías la misma solicitud de nuevo con la misma clave, recibes la primera respuesta y nunca se cobra dos veces. |
Respuesta 201 con el id del vídeo. Los créditos se reservan en ese momento, se cobran cuando el vídeo está terminado y se devuelven si falla.
{
"id": "3f2a9c0d1e4b5a67", "object": "video", "status": "queued",
"credits": 4, "credits_state": "reserved", "quality": "720p", "aspect": "16:9",
"duration_seconds": 200.1, "balance": 21
}
4. Sigue el progreso
curl -s https://clipmysong.com/api/v1/videos/3f2a9c0d1e4b5a67 -H "Authorization: Bearer $AIMV_KEY" status: checking, in_review, queued, rendering, assembling, complete, failed, refused, rejected o canceled. progress va de 0 a 100 mientras se crea el vídeo. in_review significa que primero una persona revisa el vídeo; rejected significa que nuestra revisión de contenido lo rechazó y los créditos se devolvieron.
5. Descarga
curl -s https://clipmysong.com/api/v1/videos/3f2a9c0d1e4b5a67/download -H "Authorization: Bearer $AIMV_KEY"
# -> {"video_url": "https://clipmysong.com/api/v1/files/…", "expires_at": "…"}
curl -L -o video.mp4 "<video_url>" Los enlaces de descarga están firmados y funcionan durante 10 minutos; puedes pedir uno nuevo cuando quieras.
6. Callbacks
Enviamos un POST con un cuerpo JSON (type video.completed o video.failed) y la cabecera AIMV-Signature: t=<time>,v1=<signature>. Compruébala con tu secreto de firma de callbacks:
expected = HMAC_SHA256(callback_secret, t + "." + raw_body) # hex
valid = expected == v1 and abs(now - t) < 300 Los envíos fallidos se reintentan al cabo de 1, 5, 30, 120, 600 y 1440 minutos.
7. Errores y límites
{"error": {"code": "insufficient_credits", "message": "…", "needed": 4, "balance": 1}} - 401 clave incorrecta o revocada · 402 créditos insuficientes · 404 vídeo desconocido · 409 aún no está listo o conflicto de idempotencia · 422 datos no válidos · 429 demasiadas solicitudes (consulta Retry-After).
- Límites por clave de 120 solicitudes por minuto y 20 vídeos nuevos por hora, con pocos vídeos en preparación a la vez.
- Los vídeos nuevos pueden esperar una revisión manual antes de pasar a los servidores de renderizado.