curl --request POST \
--url 'https://api.elkapi.com/v1/videos' \
--header 'Authorization: Bearer <token>' \
--form 'model=sora-2' \
--form 'prompt=햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일' \
--form 'image=https://example.com/image.png' \
--form 'duration=5' \
--form 'width=1280' \
--form 'height=720' \
--form 'fps=30' \
--form 'seed=12345' \
--form 'n=1' \
--form 'response_format=json' \
--form 'user=user-1234' \
--form 'metadata=[object Object]'
import requests
url = "https://api.elkapi.com/v1/videos"
headers = {
"Authorization": "Bearer <token>"
}
files = {
}
data = {
"model": "sora-2",
"prompt": "햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일",
"image": "https://example.com/image.png",
"duration": "5",
"width": "1280",
"height": "720",
"fps": "30",
"seed": "12345",
"n": "1",
"response_format": "json",
"user": "user-1234",
"metadata": "[object Object]",
}
response = requests.request("POST", url, headers=headers, data=data, files=files)
print(response.text)
const url = "https://api.elkapi.com/v1/videos";
const headers = {
"Authorization": "Bearer <token>"
};
const form = new FormData();
form.append("model", "sora-2");
form.append("prompt", "햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일");
form.append("image", "https://example.com/image.png");
form.append("duration", "5");
form.append("width", "1280");
form.append("height", "720");
form.append("fps", "30");
form.append("seed", "12345");
form.append("n", "1");
form.append("response_format", "json");
form.append("user", "user-1234");
form.append("metadata", "[object Object]");
const response = await fetch(url, {
method: "POST",
headers,
body: form
});
console.log(await response.text());
{
"id": "id",
"object": "object",
"model": "sora-2",
"status": "status",
"progress": 1,
"created_at": 1,
"seconds": "seconds",
"completed_at": 1,
"expires_at": 1,
"size": "1024x1024",
"error": {
"message": "message",
"code": "code"
},
"metadata": {}
}
{
"error": {
"message": "message",
"type": "type",
"param": "param",
"code": "code"
}
}
Sora 형식
Sora 비디오 생성
- OpenAI 호환 비디오 생성 엔드포인트입니다.
- 참고 문서: https://platform.openai.com/docs/api-reference/videos/create
POST
/
v1
/
videos
curl --request POST \
--url 'https://api.elkapi.com/v1/videos' \
--header 'Authorization: Bearer <token>' \
--form 'model=sora-2' \
--form 'prompt=햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일' \
--form 'image=https://example.com/image.png' \
--form 'duration=5' \
--form 'width=1280' \
--form 'height=720' \
--form 'fps=30' \
--form 'seed=12345' \
--form 'n=1' \
--form 'response_format=json' \
--form 'user=user-1234' \
--form 'metadata=[object Object]'
import requests
url = "https://api.elkapi.com/v1/videos"
headers = {
"Authorization": "Bearer <token>"
}
files = {
}
data = {
"model": "sora-2",
"prompt": "햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일",
"image": "https://example.com/image.png",
"duration": "5",
"width": "1280",
"height": "720",
"fps": "30",
"seed": "12345",
"n": "1",
"response_format": "json",
"user": "user-1234",
"metadata": "[object Object]",
}
response = requests.request("POST", url, headers=headers, data=data, files=files)
print(response.text)
const url = "https://api.elkapi.com/v1/videos";
const headers = {
"Authorization": "Bearer <token>"
};
const form = new FormData();
form.append("model", "sora-2");
form.append("prompt", "햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일");
form.append("image", "https://example.com/image.png");
form.append("duration", "5");
form.append("width", "1280");
form.append("height", "720");
form.append("fps", "30");
form.append("seed", "12345");
form.append("n", "1");
form.append("response_format", "json");
form.append("user", "user-1234");
form.append("metadata", "[object Object]");
const response = await fetch(url, {
method: "POST",
headers,
body: form
});
console.log(await response.text());
{
"id": "id",
"object": "object",
"model": "sora-2",
"status": "status",
"progress": 1,
"created_at": 1,
"seconds": "seconds",
"completed_at": 1,
"expires_at": 1,
"size": "1024x1024",
"error": {
"message": "message",
"code": "code"
},
"metadata": {}
}
{
"error": {
"message": "message",
"type": "type",
"param": "param",
"code": "code"
}
}
curl --request POST \
--url 'https://api.elkapi.com/v1/videos' \
--header 'Authorization: Bearer <token>' \
--form 'model=sora-2' \
--form 'prompt=햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일' \
--form 'image=https://example.com/image.png' \
--form 'duration=5' \
--form 'width=1280' \
--form 'height=720' \
--form 'fps=30' \
--form 'seed=12345' \
--form 'n=1' \
--form 'response_format=json' \
--form 'user=user-1234' \
--form 'metadata=[object Object]'
import requests
url = "https://api.elkapi.com/v1/videos"
headers = {
"Authorization": "Bearer <token>"
}
files = {
}
data = {
"model": "sora-2",
"prompt": "햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일",
"image": "https://example.com/image.png",
"duration": "5",
"width": "1280",
"height": "720",
"fps": "30",
"seed": "12345",
"n": "1",
"response_format": "json",
"user": "user-1234",
"metadata": "[object Object]",
}
response = requests.request("POST", url, headers=headers, data=data, files=files)
print(response.text)
const url = "https://api.elkapi.com/v1/videos";
const headers = {
"Authorization": "Bearer <token>"
};
const form = new FormData();
form.append("model", "sora-2");
form.append("prompt", "햇살이 비치는 정원에서 달리는 작은 고양이, 영화적인 느낌, 높은 디테일");
form.append("image", "https://example.com/image.png");
form.append("duration", "5");
form.append("width", "1280");
form.append("height", "720");
form.append("fps", "30");
form.append("seed", "12345");
form.append("n", "1");
form.append("response_format", "json");
form.append("user", "user-1234");
form.append("metadata", "[object Object]");
const response = await fetch(url, {
method: "POST",
headers,
body: form
});
console.log(await response.text());
{
"id": "id",
"object": "object",
"model": "sora-2",
"status": "status",
"progress": 1,
"created_at": 1,
"seconds": "seconds",
"completed_at": 1,
"expires_at": 1,
"size": "1024x1024",
"error": {
"message": "message",
"code": "code"
},
"metadata": {}
}
{
"error": {
"message": "message",
"type": "type",
"param": "param",
"code": "code"
}
}
Authorizations
string
필수
모든 엔드포인트는 Bearer Token 인증이 필요합니다.요청 헤더에 추가하세요:
Authorization: Bearer YOUR_API_KEY
Body
string
기본값:"sora-2"
모델/스타일 ID예시:
sora-2string
텍스트 프롬프트예시:
우주비행사가 일어나 걸어갔습니다string
이미지 입력(URL 또는 Base64)예시:
https://example.com/image.jpgnumber
비디오 길이(초)예시:
5integer
비디오 너비예시:
1280integer
비디오 높이예시:
720integer
비디오 프레임레이트예시:
30integer
랜덤 시드예시:
20231234integer
생성할 비디오 수예시:
1string
응답 형식예시:
urlstring
사용자 식별자예시:
user-1234object
확장 파라미터(예: negative_prompt, style, quality_level 등)
Response
string
비디오 ID
string
객체 유형
string
기본값:"sora-2"
사용된 모델예시:
sora-2string
작업 상태
integer
진행률
integer
생성 타임스탬프
string
비디오 길이
integer
완료 타임스탬프
integer
만료 타임스탬프
string
비디오 크기
object
추가 메타데이터
⌘I