コンテンツへスキップ
Videos

動画uploadを作成

POST/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
認証Bearer <token>

場所: header

ヘッダーパラメーター

Idempotency-Key?string

この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"}