문서
API

영상과 음악

Markdown

영상·음악 생성: 요청으로 작업을 만들고 작업 식별자로 결과를 가져옵니다.

전체 가이드
POSThttps://api.ailoot.ai/v1/videos
영상과 음악
# Request ID를 보관하세요. 지원팀이 이 ID로 요청을 찾습니다.
# 작업은 한 번만 생성하세요. 아래 반복문은 상태만 조회합니다.
curl --fail-with-body --max-time 120 -D video-create-headers-v1.txt \
  https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-imagine-video-1.5","prompt":"잔잔한 호수","seconds":"8","size":"1280x720"}' \
  -o video-create-v1.json || exit 1
VIDEO_ID=$(jq -er '.id // .request_id' video-create-v1.json) || exit 1
VIDEO_STATUS=""
# 이 반복문은 원래 작업만 조회합니다. 생성 요청을 다시 전송하지 않습니다.
for ATTEMPT in $(seq 1 60); do
  curl --fail-with-body --max-time 30 \
    "https://api.ailoot.ai/v1/videos/$VIDEO_ID" \
    -H "Authorization: Bearer $AILOOT_API_KEY" \
    -o video-status-v1.json || exit 1
  VIDEO_STATUS=$(jq -r '.status // empty' video-status-v1.json)
  # result_pending_check: true (status는 in_progress로 유지): 결과를 확인 중입니다. 중단하고 작업을 다시 생성하지 마세요.
  if jq -e '.result_pending_check == true' video-status-v1.json >/dev/null; then
    cat video-status-v1.json
    echo "The result is being checked. Do not create the job again: check GET /v1/videos/$VIDEO_ID later or contact support with the Request ID." >&2
    exit 1
  fi
  case "$VIDEO_STATUS" in
    done|completed) break ;;
    queued|in_progress|pending|processing) sleep 5 ;;
    # failed 또는 그 밖의 상태: 상태를 표시하고 중단하세요. 작업을 다시 생성하지 마세요.
    *) cat video-status-v1.json; exit 1 ;;
  esac
done
case "$VIDEO_STATUS" in
  done|completed) ;;
  *) echo "The job is not finished yet (status: ${VIDEO_STATUS:-none}). Check it later: GET /v1/videos/$VIDEO_ID" >&2; exit 1 ;;
esac
curl --fail-with-body --max-time 120 -L --max-redirs 3 \
  "https://api.ailoot.ai/v1/videos/$VIDEO_ID/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video-v1.mp4
# 생성 요청이 시간 초과되면 이 스크립트를 다시 실행하기 전에 사용 내역에서 Request ID를 확인하세요.
응답 · 축약
// 작업 식별자는 id 또는 request_id 필드에 있습니다
{ "id": "…", … }

// 형식은 모델마다 다릅니다. 작업 생성 응답의 식별자를
// 받은 그대로 사용하세요.

인증

  • Authorizationheader필수

    키 형식: Bearer sk-…. 다음 헤더도 사용할 수 있습니다: x-api-key 또는 x-goog-api-key.

영상: 요청 본문

  • modelstring필수

    영상 모델: google/omni-1.1-flash, grok-imagine-video, happyhorse-1.1-t2v, MiniMax-Hailuo-2.3, grok-imagine-video-1.5, happyhorse-1.1-r2v, grok-imagine-video-1.5-preview, happyhorse-1.1-i2v.

  • promptstring필수

    영상 설명입니다.

  • duration / secondsinteger / string선택 사항

    모델군별로 다릅니다. Grok 1~15초, MiniMax 6/10초(768P) 또는 6초(1080P), HappyHorse 3~15초, Google Omni 4/6/8/10초. 한 모델군의 필드를 다른 모델군에 사용하지 마세요.

  • resolution / sizestring선택 사항

    Grok: 480p/720p/1080p(1080p는 video-1.5에서 지원) 또는 size 1280x720/720x1280/1920x1080/1080x1920. MiniMax: 768P/1080P. HappyHorse: 480P/720P/1080P. Google Omni: 360p/720p.

  • image / first_frame_image / image_urlsstring / array선택 사항

    원본 이미지 필드는 모델군과 모드에 따라 다릅니다. MiniMax Fast에는 first_frame_image가 필요합니다. HappyHorse t2v는 images 없이, i2v는 ratio 없이 이미지 정확히 하나, r2v는 이미지 1~9개를 사용합니다.

응답에 작업 식별자가 포함됩니다(필드 id 또는 request_id). 형식은 모델마다 다르므로 파싱하지 말고 그대로 사용하세요. 상태 및 완성 파일:

GEThttps://api.ailoot.ai/v1/videos/{id}
GEThttps://api.ailoot.ai/v1/videos/{id}/content

동일 주소는 다음 접두사로도 사용할 수 있습니다: /v1/videos/generations/{id}. 작업 완료 상태와 응답 필드는 모델마다 다릅니다. 상태 필드를 확인하고 다음으로 파일을 가져오세요: /content.

생성 → 상태 → 다운로드

생성 응답과 Request ID를 저장하세요. MiniMax/HappyHorse 완료 상태: status: completed, 응답에 포함되는 필드: content_url, data[] 및 usage. Grok의 경우: status: done 및 video.url. Google Omni는 202 queued, 이후 Retry-After가 포함된 in_progress, completed 또는 partial/content_revoked를 반환합니다. 모든 200 응답을 완성 영상으로 취급하지 마세요. 상태 응답에 result_pending_check: true (status 가 있으면서 in_progress인 경우) 결과를 확인 중입니다. 작업을 다시 만들지 마세요. 나중에 GET /v1/videos/{id}로 확인하거나 Request ID와 함께 지원팀에 문의하세요.

/content — MP4를 직접 반환하거나 서명된 파일로 redirect할 수 있습니다. 응답의 data[]에 결과가 여러 개라면 각각 저장하세요. 전달된 결과는 모두 과금됩니다. API로 영상 작업을 취소하거나 삭제할 수 없습니다. 완성 파일 삭제는 파일 접근만 차단하며 생성을 취소하지 않습니다.

카탈로그에 따라 선택한 해상도의 완성 영상 초 단위 또는 영상 한 편 단위로 결제됩니다. 작업 생성 시 전체 비용을 예약합니다.

음악

POSThttps://api.ailoot.ai/v1/music/generations
  • modelstring필수

    google/lyria, google/lyria-3-clip-preview.

  • promptstring필수

    트랙 설명: 장르, 악기, 분위기.

응답의 data[] — 완성 클립 링크입니다. 한 요청에서 여러 클립을 반환할 수 있으며 전달된 클립마다 과금됩니다.

궁금한 점이 남았나요? Request ID와 설명을 보내 주시면 해결을 도와드리겠습니다.지원팀에 문의