Priekšskatījums · maksājumi TESTA režīmā · bez īstiem maksājumiem
AI Music Video

Izstrādātājiem

AI Music Video API

Nosūti dziesmu, saņem mūzikas videoklipu. Maksā tikai par izmantoto. Papildini kontu ar kredītiem, un katrs videoklips patērē tik kredītu, cik minūšu tas ilgst, noapaļojot uz augšu.

1. Iegūsti atslēgu

Piesakies, atver Mani videoklipi un sadaļā „API atslēgas” izveido API atslēgu. Atslēga un atzvanu parakstīšanas noslēpums tiek parādīti tikai vienreiz. Sūti atslēgu katrā pieprasījumā:

Authorization: Bearer aimv_…

Bāzes URL: https://clipmysong.com/api/v1

2. Pievieno kredītus

Iegādājies kredītu paketi (25 kredīti par 10 €, 50 par 20 €, 125 par 50 €) vai mēneša plānu cenu lapā. API un tīmekļa vietne izmanto vienu un to pašu atlikumu.

curl -s https://clipmysong.com/api/v1/balance -H "Authorization: Bearer $AIMV_KEY"

3. Izveido videoklipu

Augšupielādē dziesmu kā failu vai norādi uz to https saiti. Attēli un īss apraksts nav obligāti.

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

Ar saiti faila vietā (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}'
LauksNozīme
audio / audio_urlMP3, WAV, M4A, FLAC vai OGG, no 20 s līdz 8 min, līdz 50 MB. Saitēm jābūt ar https un uz publiskiem serveriem, bez pāradresācijas uz privātiem tīkliem.
images[] / image_urls[]Līdz 10 JPG, PNG vai WEBP attēliem, katrs līdz 10 MB. Tie tiek pārkodēti un pārbaudīti; attēliem ar atpazīstamiem cilvēkiem vajadzīgs people_consent=true.
rights_confirmedObligāts. Vērtība true nozīmē, ka dziesma un attēli pieder tev vai tev ir tiesības tos izmantot.
briefNav obligāts, līdz 600 rakstzīmēm, piemēram, vietas, krāsas, noskaņa. Tiek izmantots tikai ainu izvēlei no mūsu fiksētā saraksta un nekad netiek izpildīts kā norādījums.
resolution720p (pēc noklusējuma) vai 1080p (plāns Creator).
aspect16:9 (pēc noklusējuma) vai 9:16.
title, people_consentNav obligāts.
callback_urlNeobligāta https adrese, uz kuru tiek nosūtīts parakstīts POST, kad videoklips ir gatavs vai to neizdevās izveidot.
Idempotency-KeyNeobligāta galvene (8 līdz 64 rakstzīmes). Ja to pašu pieprasījumu nosūti vēlreiz ar to pašu atslēgu, saņem pirmo atbildi, un maksa nekad netiek iekasēta divreiz.

Atbilde 201 ar videoklipa id. Kredīti tiek rezervēti uzreiz, norakstīti, kad videoklips ir gatavs, un atgriezti, ja to neizdodas izveidot.

{
  "id": "3f2a9c0d1e4b5a67", "object": "video", "status": "queued",
  "credits": 4, "credits_state": "reserved", "quality": "720p", "aspect": "16:9",
  "duration_seconds": 200.1, "balance": 21
}

4. Seko līdzi gaitai

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 vai canceled. progress ir no 0 līdz 100, kamēr videoklips top. in_review nozīmē, ka videoklipu vispirms apskata cilvēks; rejected nozīmē, ka mūsu satura pārbaude to noraidīja un kredīti tika atgriezti.

5. Lejupielādē

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>"

Lejupielādes saites ir parakstītas un darbojas 10 minūtes. Jaunu saiti vari pieprasīt jebkurā laikā.

6. Atzvani (callbacks)

Mēs nosūtām POST pieprasījumu ar JSON saturu (type video.completed vai video.failed) un galveni AIMV-Signature: t=<time>,v1=<signature>. Pārbaudi to ar savu atzvanu parakstīšanas noslēpumu:

expected = HMAC_SHA256(callback_secret, t + "." + raw_body)   # hex
valid    = expected == v1 and abs(now - t) < 300

Neizdevušās piegādes tiek atkārtotas pēc 1, 5, 30, 120, 600 un 1440 minūtēm.

7. Kļūdas un ierobežojumi

{"error": {"code": "insufficient_credits", "message": "…", "needed": 4, "balance": 1}}