動画uploadを作成
/api/v1alpha1/videosサーバーがdirectまたはmultipart upload sessionを選択します。requestには元のfilenameと正確なfile_sizeだけを含め、content typeはfilenameからサーバーが決め、durationはprocessing中に測定します。動画のバイト列はstorageへ直接送信し、このAPIを通過しません。200 MiB以下は1回のPUT、それより大きい動画は10 MiBのmultipart chunkを使います。responseに選択したstrategyを返します。
- アクセス: alphaを有効にしたAPI keyと
UPLOAD_VIDEOS権限。 - サイズ:
file_sizeは必須で正確な値にしてください。最大は10 GiBです。 - 方式: upload方式は常に自動選択し、callerは方式を指定できません。
- 再試行: session作成を安全にretryするには
Idempotency-Keyを指定します。
storage upload後、multipartのETagをPUT /api/v1alpha1/videos/{video_id}/upload/partsで記録し、POST /api/v1alpha1/videos/{video_id}/upload/completeを呼び出します。processing statusはGET /api/v1alpha1/videos/{video_id}でpollします。
認証
apiKey 場所: header
ヘッダーパラメーター
このPOSTを安全にretryするための任意のkeyです。keyは24時間保持され、request payloadと具体的なpath parameterと比較されます。
length <= 255リクエストボディ
application/json
TypeScript 型定義
TypeScript では request body 型を使用します。
レスポンスボディ
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/api/v1alpha1/videos" \ -H "Authorization: Bearer $DEEPFRAME_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file_size": 157286400, "filename": "warehouse-inspection-2026-08-08.mp4" }'{ "chunk_size": 10485760, "completed_parts": 2, "expires_at": "2026-08-08T10:15:00.000Z", "file_size": 157286400, "received_parts": [ 1, 3 ], "reported_bytes": 20971520, "state": "open", "strategy": "direct", "target": { "expires_at": "2026-08-08T10:15:00.000Z", "headers": {}, "method": "put", "part_number": 2, "url": "https://s3.example.test/upload" }, "targets": [ { "expires_at": "2026-08-08T10:15:00.000Z", "headers": {}, "method": "put", "part_number": 2, "url": "https://s3.example.test/upload" } ], "total_chunks": 16, "uploaded_bytes": 10485760, "verified_bytes": 0, "video_id": "vid_0190b5d4-7e1f-7a2b-9c3d-1234567890ab"}