# 提交并追踪视频任务

创建任务，查询状态，下载完成的视频片段。

<a id="overview"></a>

## 请求前

视频生成采用异步流程：提交一次，保存返回的任务 ID，之后查询同一任务，直到进入最终状态。本示例使用 seedance-2.0-fast。

视频目前仅通过 API 使用。需要已有账户、足够余额、匹配的密钥分组及可用的上游容量。新用户注册与在线充值暂未开放。

<a id="prepare-video"></a>

## 1. 检查分组与规格

本示例请在已启用的「渠道1 / seedance 2.0-fast（限时折扣）」分组中创建网站 API 密钥。在模型页核对当前价格与支持规格；分组名称不代表永久折扣承诺。

- 本示例使用文本提示词，请求一段 5 秒、720p 的视频。
- 当前视频路由支持 JSON 及引用 URL 的 multipart 请求，尚未实现本地二进制上传、草稿引用和 frames 参数。
- 时长与分辨率会影响视频 tokens 的估算。如上游返回实际用量，最终按该用量计费，并非每段视频采用固定价格。

<a id="submit-video"></a>

## 2. 提交一次并保存 ID

发送以下请求并保存 JSON 响应。从成功响应中读取 id 字段，后续所有查询均使用同一个 ID。

提交出现结果不明的超时后，请先查看任务记录，再决定是否创建新任务。新的 POST 请求可能启动另一笔计费任务。

```
export OHGROK_API_KEY='YOUR_API_KEY'

curl --fail-with-body --silent --show-error \
  'https://api.ohgrok.com/v1/videos' \
  -H "Authorization: Bearer $OHGROK_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "seedance-2.0-fast",
    "prompt": "Clouds moving slowly over a quiet mountain lake",
    "seconds": 5,
    "resolution": "720p"
  }' \
  -o video-response.json
```

<a id="check-status"></a>

## 3. 查询同一个任务

将 YOUR_VIDEO_ID 替换为上一步返回的 id。公开状态可能为 queued、in_progress、completed、failed 或 unknown。仍在排队或执行时，等待后再查询同一任务。

状态变为 completed 或 failed 后停止轮询。unknown 状态需要进一步排查，请勿直接重复提交。进度仅表示任务状态，不代表保证的完成时间。

```
VIDEO_ID='YOUR_VIDEO_ID'

curl --fail-with-body --silent --show-error \
  "https://api.ohgrok.com/v1/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $OHGROK_API_KEY"
```

<a id="download-video"></a>

## 4. 下载完成的视频

同一任务返回 completed 后，使用同一网站 API 密钥获取内容。失败任务应结合错误信息和控制台记录排查，不要继续请求内容下载端点。

首页示例影片为 Big Buck Bunny 的剪辑片段，非 ohgrok 生成的视频，也不是本指南的实际生成结果。

```
curl --fail-with-body --silent --show-error \
  "https://api.ohgrok.com/v1/videos/$VIDEO_ID/content" \
  -H "Authorization: Bearer $OHGROK_API_KEY" \
  -o result.mp4
```

