Für Entwickler
AI Music Video API
Song schicken, Musikvideo bekommen. Du zahlst nur, was du nutzt. Lade Credits auf dein Konto, und jedes Video verbraucht einen Credit pro angefangene Minute.
1. Schlüssel erstellen
Melde dich an, öffne Meine Videos und erstelle unter „API-Schlüssel“ einen Schlüssel. Der Schlüssel und ein Signatur-Secret für Callbacks werden nur einmal angezeigt. Sende den Schlüssel bei jeder Anfrage mit:
Authorization: Bearer aimv_… Basis-URL: https://clipmysong.com/api/v1
2. Credits aufladen
Kaufe ein Credit-Paket (25 Credits für 10 €, 50 für 20 €, 125 für 50 €) oder ein Monatsabo auf der Preisseite. API und Website nutzen dasselbe Guthaben.
curl -s https://clipmysong.com/api/v1/balance -H "Authorization: Bearer $AIMV_KEY"
3. Video erstellen
Lade den Song als Datei hoch oder gib einen https-Link dazu an. Bilder und eine kurze Beschreibung sind optional.
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 Mit Link statt Datei (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}' | Feld | Bedeutung |
|---|---|
audio / audio_url | MP3, WAV, M4A, FLAC oder OGG, 20 s bis 8 Min., bis 50 MB. Links nur über https und nur auf öffentliche Server, keine Weiterleitungen in private Netze. |
images[] / image_urls[] | Bis zu 10 Bilder als JPG, PNG oder WEBP, je 10 MB. Sie werden neu kodiert und geprüft; Bilder mit erkennbaren Personen brauchen people_consent=true. |
rights_confirmed | Pflichtfeld. true bedeutet, dass dir Song und Bilder gehören oder du die Rechte hast, sie zu nutzen. |
brief | Optional, bis zu 600 Zeichen zu Orten, Farben, Stimmung. Wird nur genutzt, um Szenen aus unserer festen Liste auszuwählen, und nie als Anweisung ausgeführt. |
resolution | 720p (Standard) oder 1080p (Creator-Abo). |
aspect | 16:9 (Standard) oder 9:16. |
title, people_consent | Optional. |
callback_url | Optionale https-Adresse, die einen signierten POST erhält, wenn das Video fertig oder fehlgeschlagen ist. |
Idempotency-Key | Optionaler Header (8 bis 64 Zeichen). Wird dieselbe Anfrage mit demselben Schlüssel erneut gesendet, kommt die erste Antwort zurück und es wird nie doppelt abgebucht. |
Antwort 201 mit der Video-ID. Die Credits werden sofort reserviert, abgebucht, wenn das Video fertig ist, und zurückgebucht, falls es fehlschlägt.
{
"id": "3f2a9c0d1e4b5a67", "object": "video", "status": "queued",
"credits": 4, "credits_state": "reserved", "quality": "720p", "aspect": "16:9",
"duration_seconds": 200.1, "balance": 21
}
4. Fortschritt verfolgen
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 oder canceled. progress liegt zwischen 0 und 100, solange das Video entsteht. in_review bedeutet, dass zuerst ein Mensch das Video prüft; rejected bedeutet, dass unsere Inhaltsprüfung es abgelehnt hat und die Credits zurückgebucht wurden.
5. Herunterladen
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>" Download-Links sind signiert und 10 Minuten gültig; du kannst jederzeit einen neuen anfordern.
6. Callbacks
Wir senden einen POST mit JSON-Body (type video.completed oder video.failed) und dem Header AIMV-Signature: t=<time>,v1=<signature>. Prüfe ihn mit deinem Signatur-Secret für Callbacks:
expected = HMAC_SHA256(callback_secret, t + "." + raw_body) # hex
valid = expected == v1 and abs(now - t) < 300 Fehlgeschlagene Zustellungen werden nach 1, 5, 30, 120, 600 und 1440 Minuten wiederholt.
7. Fehler und Limits
{"error": {"code": "insufficient_credits", "message": "…", "needed": 4, "balance": 1}} - 401 falscher oder deaktivierter Schlüssel · 402 nicht genug Credits · 404 unbekanntes Video · 409 noch nicht fertig oder Idempotenz-Konflikt · 422 ungültige Eingabe · 429 zu viele Anfragen (siehe Retry-After).
- Limits pro Schlüssel sind 120 Anfragen pro Minute und 20 neue Videos pro Stunde; gleichzeitig können nur wenige Videos entstehen.
- Neue Videos werden eventuell erst manuell geprüft, bevor sie an die Render-Server gehen.