Sora 2 API 종료: 영상 생성 호출 마이그레이션

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

읽는 시간 5분Sume
전체 글

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는 없다고 밝히고 있습니다.

OpenAI 지원 중단(Deprecations) 페이지 기준, 2026-09-27 확인.
종료일모델 또는 시스템안내된 대체 항목
2026-09-24Videos API없음
2026-09-24sora-2없음
2026-09-24sora-2-pro없음
2026-09-24sora-2-2025-10-06없음
2026-09-24sora-2-2025-12-08없음
2026-09-24sora-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 영상 생성 (영문) 문서, Sume OpenAPI 레퍼런스 기준, 2026-09-27 확인.
OpenAI Videos APISume POST /v1/videos바꿀 점
POST /videosPOST https://api.sume.com/v1/videosContent-Type: application/json과 함께 JSON 본문 전송
model(예: sora-2)model필수: 카탈로그 ID 또는 sume/auto
promptprompt같은 필드
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_referencesfirst_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}/contentGET /v1/videos/{id}/content?index=0API 키를 함께 전송. 완료된 폴링 응답의 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에 있습니다.

출처

관련 글

모델 카테고리의 다른 글

모델 글 전체 보기

작성자 Sume