OpenAI-Compatible Video Interface
Use OpenAI Videos-style create, query, remix, and content proxy routing operations for video tasks.
https://zx1.deepwl.net/v1/videoscurl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '
{
"model": "sora-2",
"prompt": "A paper airplane flies through a bright office, with the camera smoothly following",
"seconds": "5",
"size": "1280x720"
}'{
"id": "video_abc123",
"task_id": "video_abc123",
"object": "video",
"model": "sora-2",
"status": "queued",
"progress": 0,
"created_at": 1735689600,
"seconds": "5",
"size": "1280x720"
}This set of routes presents itself externally in an OpenAI Videos API style, suitable for clients that already read and write results as video objects.
- Creation, querying, and remix all use the OpenAI-style
videoobject. - The exposed
idmaps to the platform task ID, rather than directly exposing the upstream raw task ID. - The
contentproxy route supports access via API Key and logged-in session state. - Remix will preferentially look up the original video task and lock execution to the original channel.
Route List
| Method | Path | Description |
|---|---|---|
POST | /v1/videos | Create a video task |
GET | /v1/videos/{task_id} | Query a video task |
POST | /v1/videos/{video_id}/remix | Remix based on an existing video task |
GET | /v1/videos/{task_id}/content | Proxy download of video content |
Request Headers
Authorizationstring必填Authentication header. Uses a Bearer token, e.g. Bearer YOUR_API_KEY. Creation, querying, and remix all use this method.
Content-Typestring必填Request content type, must be application/json.
GET /v1/videos/{task_id}/content also supports Authorization: Bearer YOUR_API_KEY and the web dashboard login state UserAuth.
Path Parameters
task_idstring必填Video task ID, used for querying and content proxying.
video_idstring必填The source video ID for remix. The server will first look up the original task and original channel using it.
Request Body
modelstring必填Video model name, such as sora-2, sora_video2, or a model name mapped from another channel.
promptstring必填Video description or remix instruction.
imagestringInput image for image-to-video generation. Support depends on the specific upstream provider.
secondsstringTarget video duration, common values are 5, 10, and 15.
sizestringTarget resolution or ratio, such as 1280x720, 720x1280, or 16:9.
metadataobjectVendor passthrough parameters. For remix, upstream proprietary fields can also be included here.
Request Examples
Response Examples
Response Fields
idstringPublic video task ID.
statusstringTask status, common values are queued, in_progress, completed, and failed.
video_urlstringPlayable URL after generation is complete. In many cases, it points to the platform proxy route.
errorobjectError details for failed tasks, shown only when status = failed.
Usage Scenarios
Query a Task
curl https://zx1.deepwl.net/v1/videos/video_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"
Remix
curl -X POST https://zx1.deepwl.net/v1/videos/video_abc123/remix \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Keep the composition, but change the scene to a neon-lit nighttime style"
}'
Proxy Download
curl -L https://zx1.deepwl.net/v1/videos/video_abc123/content \
-H "Authorization: Bearer YOUR_API_KEY" \
--output output.mp4
Notes
If you have both /v1/video/generations and /v1/videos integrated, it is recommended that the frontend consistently choose one response structure to use, and avoid mixing the generic task wrapper and the OpenAI video object within the same parsing logic.