curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.5-flash-video-edit",
"prompt": "비디오 편집: @video1의 모든 행인을 제거하고 주인공만 남기기",
"video_urls": [
"https://example.com/original.mp4"
],
"quality": "720p",
"generate_audio": true,
"content_filter": true
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.5-flash-video-edit",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_parameter",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: seedance-2.5-flash-video-edit",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"type": "<string>"
}
}Seedance 2.5 Flash Video Edit 비디오 편집
- 입력 비디오를 편집 — 피사체 교체, 객체 추가·삭제, 부분 리페인팅 또는 스타일 변경
- 프롬프트에 변경 내용을 바로 설명하면 됩니다(예: “@video1의 모든 행인을 제거하고 주인공만 남기기”)
- 편집할 비디오(필수) + 선택 참조 이미지(0–10) + 참조 비디오(총 최대 5개) + 참조 오디오(0–5) 입력
- AIGC 유형 실사 소재 지원
- 비동기 처리 모드로, 반환된 작업 ID를 사용하여 조회하세요
- 생성된 비디오 링크는 24시간 동안 유효하며, 가능한 빨리 저장하세요
초안 제한: Seedance 2.5 Flash는 draft: true와 초안을 최종 비디오로 변환하는 기능을 지원하지 않습니다.
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.5-flash-video-edit",
"prompt": "비디오 편집: @video1의 모든 행인을 제거하고 주인공만 남기기",
"video_urls": [
"https://example.com/original.mp4"
],
"quality": "720p",
"generate_audio": true,
"content_filter": true
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.5-flash-video-edit",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_parameter",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: seedance-2.5-flash-video-edit",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"type": "<string>"
}
}인증
##모든 API는 Bearer Token 인증이 필요합니다##
API Key 얻기:
API Key 관리 페이지에서 API Key를 받으세요
요청 헤더에 다음을 추가하세요:
Authorization: Bearer YOUR_API_KEY
본문
입력 비디오 URL 배열, 필수; 1–5개
필수 조건: 편집할 비디오를 최소 1개 제공해야 합니다. 첫 번째 비디오가 편집 대상이고 나머지는 참조 소재로 사용됩니다.
역할 설명:
| 미디어 유형 | 역할 | 일반적인 용도 |
|---|---|---|
| 비디오 | reference_video | 편집할 비디오(첫 번째), 카메라 무빙·동작 참조(나머지) |
비디오 요구사항:
- 지원 형식:
.mp4,.mov - 해상도: 480p, 720p, 1080p, 4K
- 단일 비디오 길이:
4~30초(첫 번째 비디오가 편집 대상), 최대 5개, 모든 비디오 총 길이 <=30초 - 화면 비율(너비/높이):
0.4~2.5 - 너비/높이 픽셀:
300~6000px - 화면 픽셀(너비 x 높이):
409,600~8,295,044(예: 640x640 ~ 3326x2494) - 단일 파일 크기:
200MB이하 - 프레임 레이트:
24~60FPS - 요청 본문 총 크기
64MB이하, Base64 인코딩을 사용하지 마세요 - 코덱, 해상도 등 소재의 유효성은 모델에서 추가로 확인됩니다
- 비디오 참조 사용 시 추가 비용이 발생합니다(입력 비디오 길이가 과금에 포함)
- 비디오 URL은 서버에서 직접 접근 가능해야 합니다
소재 주소: 공개 접근 가능한 HTTP(S) URL과 선택한 상위 계정에서 접근 가능한 asset:// 소재 ID를 지원합니다.
1 - 5 elements["https://example.com/original.mp4"]
참조 이미지 URL 배열, 선택 사항이며 제공 시 1~10장
필수 조건: 이 모델은 video_urls가 필수이며, 이미지는 선택적인 보조 참조 소재입니다.
역할 설명:
| 미디어 유형 | 역할 | 일반적인 용도 |
|---|---|---|
| 이미지 | reference_image | 스타일 참조, 제품 이미지, 교체할 피사체(prompt로 지정) |
이미지 요구사항:
- 지원 형식:
.jpeg,.png,.webp - 화면 비율(너비/높이):
0.4~2.5 - 너비/높이 픽셀:
300~6000px - 단일 파일 크기:
30MB이하 - 요청 본문 총 크기
64MB이하, Base64 인코딩을 사용하지 마세요 - 이미지 URL은 서버에서 직접 접근 가능해야 합니다
소재 주소: 공개 접근 가능한 HTTP(S) URL과 선택한 상위 계정에서 접근 가능한 asset:// 소재 ID를 지원합니다.
10[
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
]
참조 오디오 URL 배열, 선택 사항이며 제공 시 1~5개
필수 조건: 이 모델은 video_urls가 필수이며, 오디오는 선택적인 보조 참조 소재입니다.
역할 설명:
| 미디어 유형 | 역할 | 일반적인 용도 |
|---|---|---|
| 오디오 | reference_audio | 배경 음악, 효과음, 음성/대사 참조 |
오디오 요구사항:
- 지원 형식:
.wav,.mp3 - 단일 오디오 길이:
2~30초, 최대 5개, 모든 오디오 총 길이 <=30초 - 단일 파일 크기:
15MB이하 - 요청 본문 총 크기
64MB이하, Base64 인코딩을 사용하지 마세요 - 오디오 URL은 서버에서 직접 접근 가능해야 합니다
소재 주소: 공개 접근 가능한 HTTP(S) URL과 선택한 상위 계정에서 접근 가능한 asset:// 소재 ID를 지원합니다.
5["https://example.com/bgm.mp3"]
콘텐츠 필터, 기본값은 true
선택 가능한 값:
true: 표준 콘텐츠 안전 검사, 기본값입니다false: 콘텐츠 제한을 완화하며 +10%(1.1x)가 청구됩니다. 불법 및 금지된 콘텐츠는 이 설정과 관계없이 항상 적용됩니다
웹 검색과 함께 사용할 수 없음:
content_filter: false와model_params.web_search: true는 동시에 사용할 수 없으며, 함께 전달하면 400 파라미터 오류가 반환됩니다- 웹 검색이 필요한 경우
content_filter: true(기본값)를 유지하세요
true
작업 완료 후 HTTPS 콜백 주소
콜백 시점:
- 작업 완료(completed) 또는 실패(failed) 시 트리거
- 과금 확인 완료 후 전송
보안 제한:
- HTTPS 프로토콜만 지원
- 내부 네트워크 IP 주소로의 콜백 금지(127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x 등)
- URL 길이는
2048자를 초과할 수 없습니다
콜백 메커니즘:
- 타임아웃:
10초 - 실패 시 최대
3회 재시도(실패 후 각각1/2/4초 후 재시도) - 콜백 응답 본문 형식은 작업 조회 API 반환 형식과 동일
- 2xx 상태 코드를 성공으로 간주하며, 다른 상태 코드는 재시도를 트리거합니다
"https://your-domain.com/webhooks/video-task-completed"
응답
비디오 생성 작업이 성공적으로 생성되었습니다