Sora 2 API 종료: 영상 생성 호출 마이그레이션
OpenAI는 2026-09-24에 Videos API와 Sora 2 모델을 종료했습니다. 기존 필드와 Sume POST /v1/videos의 대응 관계, 모델 ID를 바꿔야 하는 이유를 다룹니다.

OpenAI는 2026-09-24에 Videos API와 sora-2, sora-2-pro를 비롯한 Sora 2 모델을 종료했으며, 지원 중단 페이지에는 대체 항목이 나와 있지 않습니다. 이 호출을 Sume로 옮기려면 Sume 영상 카탈로그의 모델 ID나 sume/auto를 지정해 프롬프트를 POST https://api.sume.com/v1/videos로 보내세요. Sume에는 Sora 모델이 없으므로 모델 ID는 반드시 바뀝니다.
이 글은 작성 시점 기준의 기록입니다. 종료 관련 사실은 OpenAI의 지원 중단(Deprecations) 페이지에서, 기존 필드 이름은 Videos API 레퍼런스에서 가져왔으며, 모두 2026-09-27에 확인했습니다. Sume 쪽 내용은 영상 생성 (영문) 문서, OpenAPI 스키마, Sume 카탈로그 코드에서 가져왔습니다. 은퇴 예정인 Sume 자체의 Video 1.0 경로는 sume/auto로 옮기기에서 다룹니다.
OpenAI는 무엇을, 언제 종료했나요?
OpenAI는 2026년 3월 24일에 개발자들에게 이를 공지했습니다. Videos API 레퍼런스는 이제 기록 참고용으로만 남아 있으며, 일대일로 대체할 API는 없다고 밝히고 있습니다.
| 종료일 | 모델 또는 시스템 | 안내된 대체 항목 |
|---|---|---|
| 2026-09-24 | Videos API | 없음 |
| 2026-09-24 | sora-2 | 없음 |
| 2026-09-24 | sora-2-pro | 없음 |
| 2026-09-24 | sora-2-2025-10-06 | 없음 |
| 2026-09-24 | sora-2-2025-12-08 | 없음 |
| 2026-09-24 | sora-2-pro-2025-10-06 | 없음 |
Sume에 Sora 모델이 있나요?
없습니다. Sume 영상 카탈로그에 나열된 ID(seedance-2.5, seedance-2-mini, seedance-2, seedance-2-fast, kling-3, wan-3.0, grok-imagine-video-1.5, minimax-h3, minimax-h3-max, gemini-omni-flash-1.1) 가운데 Sora 모델은 하나도 없습니다. sume/auto를 보내 Sume가 고르게 할 수도 있습니다. 이때 응답에는 sume/auto가 그대로 표시되며, Sume는 어떤 모델 계열이 실행됐는지 절대 공개하지 않습니다.
모델마다 GET /v1/videos/models에 자체 supported_durations, supported_resolutions, supported_aspect_ratios를 공개하므로, 기존 설정을 옮기기 전에 모델을 확인하세요. 이 필드들은 영상 모델 목록 조회에서 하나씩 설명합니다.
기존 Videos API 필드는 POST /v1/videos에서 어떻게 바뀌나요?
Sume는 기존 요청 본문을 그대로 받지 않습니다. POST /v1/videos의 OpenAPI 스키마에는 seconds나 input_reference 필드가 없고, 스키마에 없는 필드는 거부하므로 필드마다 이름을 바꾸세요.
| OpenAI Videos API | Sume POST /v1/videos | 바꿀 점 |
|---|---|---|
POST /videos | POST https://api.sume.com/v1/videos | Content-Type: application/json과 함께 JSON 본문 전송 |
model(예: sora-2) | model | 필수: 카탈로그 ID 또는 sume/auto |
prompt | prompt | 같은 필드 |
seconds("8" 같은 문자열) | duration | 모델의 supported_durations에 있는 정수 초 값 |
size(예: 720x1280) | resolution과 aspect_ratio(예: 720p, 9:16) | 모든 v1 모델이 supported_sizes: null을 보고하므로 size는 400 unsupported_parameter를 반환 |
input_reference(image_url 또는 file_id) | frame_images 또는 input_references | first_frame 항목은 클립의 시작 프레임이 되고, input_references는 클립의 방향을 잡음. 항목에는 공개 HTTPS URL이 들어가므로 파일 ID나 data URL은 먼저 호스팅된 이미지로 바꿔야 함 |
GET /videos/{video_id} | GET /v1/videos/{id} | 상태는 pending(기존 queued), in_progress, completed, failed, cancelled |
GET /videos/{video_id}/content | GET /v1/videos/{id}/content?index=0 | API 키를 함께 전송. 완료된 폴링 응답의 unsigned_urls[0]이 이 경로를 가리킴 |
옮긴 요청은 어떤 모습인가요?
문서의 sume/auto 요청에 멱등성 키를 추가한 예시입니다. 모델을 고정하려면 카탈로그 ID로 바꾸세요.
curl -X POST "https://api.sume.com/v1/videos" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: clip-001" \
-d '{
"model": "sume/auto",
"prompt": "A vertical UGC-style product clip on a desk, natural light",
"aspect_ratio": "9:16",
"duration": 5
}'전환하면 그 밖에 무엇이 달라지나요?
달라지는 것은 요청 형태만이 아닙니다. 첫날부터 다음 사항에 대비하세요.
- 인증은 서버에서 보내는
Authorization: Bearer $SUME_API_KEY입니다. Idempotency-Key를 보내면 재시도한 제출이 두 번째 Job을 만들지 않고 원래 Job을 반환합니다.- 폴링 대신 푸시를 받으려면 HTTPS
callback_url을 넘기세요. Sume는x-sume-webhook-signature로 서명한 자체 Job 웹훅 봉투를 POST로 보냅니다. - 같은 Job은
GET /v1/jobs/{id}/status와GET /v1/jobs/{id}/result에서도 볼 수 있습니다. - 요금은 워크스페이스 USD 잔액에서 차감되며, 폴링 응답의
usage.cost가 청구 금액입니다. 모델별pricing_skus는GET /v1/videos/models에 있습니다.
출처
관련 글
모델 카테고리의 다른 글
- 레퍼런스 이미지 기반 이미지 생성 API: POST /v1/images
Sume의 POST /v1/images에 프롬프트와 공개 HTTPS 레퍼런스 이미지를 보내세요. 카탈로그 모델을 고정하거나 sume/auto를 보내면 되고, 모델별 한도는 카탈로그에 나와 있습니다.
- 음악 생성 API: Sume Music Router와 Lyria 3.5
Sume Music Router는 POST /v1/music-router/generate로 텍스트 프롬프트를 트랙으로 만듭니다. sume/music-auto가 엔진을 고르며, 현재는 Lyria 3.5입니다.
- TikTok 트렌딩 영상 검색 API: 리서치용 순위 메타데이터
Sume의 POST /v1/trending-videos/search는 브랜드, 제품, 크리에이터, 키워드에 대해 순위가 매겨진 공개 TikTok 영상 메타데이터를 반환합니다. 영상을 내려받지는 않습니다.
- 4K AI 영상 생성 API: 모델별 해상도, 360p부터 4K까지
Sume에서 4K는 gemini-omni-flash-1.1을 지정해 resolution 4K로 요청하세요. minimax-h3는 2K나 4K로 업스케일합니다. 영상 모델별 해상도와 가격 영향을 다룹니다.
작성자 Sume