返回全部文章

视频创作指南

视频生成 API 快速入门:创建、查询与下载

使用本站 API Key 查看模型、预估积分、创建视频任务、轮询状态并下载结果,附可运行的 Node.js 示例及失败处理说明。

文 / 本站编辑团队2026年11月8日6 分钟阅读

使用本站 API,可以选择可用模型、预估积分、创建一次异步视频任务、查询状态并下载结果。这是本站独立平台的 API,不是 Pika 官方 API;本站当前尚未提供 Pika H3 Flex 模型本身。 请使用本站目录返回的模型 ID。

接口约定于 2026 年 11 月 9 日按本站实现核对。可下载示例通过模拟响应和本地未登录请求验证,不声称已经执行过付费供应商的端到端生成。

1. 创建 API Key

登录后打开设置 → API 密钥,为集成创建密钥,通过后端环境变量 API_KEY 提供,不要写进前端包、公开仓库或 URL。

生成与任务查询接受 Authorization: Bearer sk_...。显式凭证无效时,即使浏览器另有有效登录状态也会被拒绝。密钥使用所属账号及其积分余额。

基础地址使用 https://pikah3flex.com。中英文 API 都使用 /api/...,不要加 /zh 前缀。

方法与路径 用途 鉴权
GET /api/ai/router01/models?projectOnly=1&type=video 查看项目视频模型和当前 params 公开目录,无需密钥
POST /api/ai/router01/quote 验证输入并预估积分 公开估算,不创建任务
POST /api/ai/generate 创建任务并扣减积分 你的 API Key
GET /api/ai/task?taskId=... 查询同一账号所属任务 同一账号的 API Key

上传接口、/api/download、/api/storage/download 及账户管理接口并非都支持 API Key。目前上传和下载代理需要浏览器登录状态。服务端集成请提供可访问的素材 URL,并直接从结果 URL 下载。不要假设 /api/credits 接受此 API Key;余额和记录可在账户界面查看。

2. 先查模型,再选设置

export API_BASE_URL='https://pikah3flex.com'
curl -sS "${API_BASE_URL}/api/ai/router01/models?projectOnly=1&type=video"

成功响应的 code 为 0,data 是模型数组,包含 slug、type、name、params 等信息。先确认允许值、最小值、最大值、必需输入和默认值。项目目录为空,不代表任意平台模型都能生成;目标模型缺失时请联系支持。

下例假设当前目录中的 seedance-2.0-mini 支持 4 秒、480p、16:9。请先核实,或改选其他模型及其支持的参数。

3. 用准备提交的同一份参数询价

将以下内容保存为 request.json:

{
  "mediaType": "video",
  "model": "seedance-2.0-mini",
  "prompt": "A ceramic cup on a wooden table. One slow camera push-in, soft morning light, restrained movement.",
  "options": {
    "mode": "text-to-video",
    "visibility": "private",
    "duration": 4,
    "resolution": "480p",
    "aspect_ratio": "16:9"
  }
}
curl -sS "${API_BASE_URL}/api/ai/router01/quote" \
  -H 'Content-Type: application/json' \
  --data-binary @request.json

data.credits 是完整一次任务的积分预估。priceUsd、scope、provider 等描述报价计算;供应商美元金额不是单独的现金结算价,也不一定等于购买积分后的实际分摊成本。换算说明见积分成本与积分包折算。

询价不锁定价格或任务名额,提交时会重新计价。请求中的自填价格或余额不能作为计费依据。

4. 只提交一次,并保存本地任务 ID

这个 POST 可能消耗积分。 确认报价和设置后再执行:

curl -sS "${API_BASE_URL}/api/ai/generate" \
  -H "Authorization: Bearer ${API_KEY}" \
  -H 'Content-Type: application/json' \
  --data-binary @request.json

成功响应的 data 包含 id、dbId、taskId、taskStatus、taskInfo、costCredits、remainingBalance,初始状态为 queued。轮询前保存 dbId 或 id,作为稳定的查询 ID;后续响应也可能包含供应商任务 ID。

必须同时检查 HTTP 状态和 JSON 响应体。部分参数及业务错误会返回 HTTP 200,但 code: -1 并带有 message,不能仅凭 HTTP 200 判断任务创建成功。当前接口没有已公开约定的客户端幂等键;生成 POST 超时或响应丢失时,请先检查“我的创作”,必要时联系支持,不要直接重复提交。

5. 查询状态,再下载

curl -sS --get "${API_BASE_URL}/api/ai/task" \
  -H "Authorization: Bearer ${API_KEY}" \
  --data-urlencode "taskId=${VIDEO_TASK_ID}"

单 ID 查询的 data 是一个任务对象。

data.taskStatus 下一步
queued、pending、processing 保留 ID,间隔合理时间再次查询,例如 10 秒
success 从 data.taskInfo.videos[].videoUrl 取得所需输出并下载
failed、canceled 查看 data.taskInfo.userErrorCode,再核对任务和积分记录

停止轮询不会取消任务,客户端等待期限结束也不证明服务端失败。批量查询使用 taskIds,返回 data.tasks,当前最多 10 个 ID,不要与单任务返回结构混淆。

从后端或 curl 直接下载返回的 HTTPS 媒体 URL,不要把本站 API Key 转发给媒体域名。下载链接失败时先查询已有任务,按情况重试下载,不要仅为下载而重新生成。带签名的结果链接也不宜公开分享。

可运行的 Node.js 示例

下载 video-api-quickstart.mjs,使用 Node.js 22 或更高版本运行,仅依赖内置模块。先在后端环境中设置 API_KEY。

# 默认只查目录和询价。
node video-api-quickstart.mjs

# 确认报价后,允许创建一次新任务。
SUBMIT_VIDEO=1 node video-api-quickstart.mjs

# 继续查询已有任务,不创建新任务。
VIDEO_TASK_ID='your_saved_local_task_id' node video-api-quickstart.mjs

可选设置包括 API_BASE_URL、VIDEO_MODEL、VIDEO_DURATION、VIDEO_RESOLUTION、VIDEO_RATIO。示例会按目录验证基础参数,最多提交一次,最多查询 60 次,每次之间等待 10 秒,并将结果写入新的 video-<任务ID>.<格式>,不覆盖已有文件,也不会向媒体域名转发密钥。这个短视频示例会在内存中缓冲下载;处理更大的生产素材时请使用流式写入。

轮询结束或读取失败后,保留任务 ID 并继续查询。示例遇错停止,不自动重试付费 POST。如果未设置 VIDEO_TASK_ID 却再次以 SUBMIT_VIDEO=1 运行,可能创建另一个计费任务。

增加图片与参考输入

示例显式设置 options.visibility: "private",以排除公开作品展示;省略时任务可能被视为可公开。这不保证媒体链接需要登录、零留存或供应商不训练,提交保密素材前请阅读隐私与商用说明。

使用顶层 imageUrls、videoUrls、audioUrls,保持相同的 options 结构。图生视频选择 options.mode: "image-to-video",在 imageUrls 中提供首帧;参考生视频使用 options.mode: "reference-to-video",只添加该模型支持的类型和数量。不要套用上游接口的 input 包装,也不要假设所有模型支持纯音频参考。

素材在处理期间必须能被供应商访问,本地文件路径或依赖浏览器 Cookie 的 URL 不适用。上传支持、模型输入限制和供应商计费是不同的检查项。更换输入后重新询价,尤其是视频、音频时长改变时。

失败与公开任务错误码见视频排错指南,创作修改见提示词指南。联系支持时提供任务 ID、模型、时间和已脱敏请求,不要发送 API Key。