Python 指南

使用 Python 接入图生视频 AI API

从一张图片创建异步任务,安全跟踪状态,并下载生成完成的视频。

Python:创建、轮询与下载
import os
import time
import requests

base_url = "https://sora2-api.com"
headers = {
    "Authorization": f"Bearer {os.environ['TIKDEK_API_KEY']}",
    "Content-Type": "application/json",
}

created = requests.post(
    f"{base_url}/api/v1/video/sora-video",
    headers=headers,
    json={
        "model": "sora-2-pro",
        "prompt": "Slow camera push-in, rain moving across the frame",
        "url": "https://example.com/reference-frame.jpg",
        "aspectRatio": "16:9",
        "webHook": "-1",
        "isPublic": False,
    },
    timeout=30,
)
created.raise_for_status()
task_id = created.json()["data"]["id"]

for _ in range(90):
    response = requests.post(
        f"{base_url}/api/video-generations/check-result",
        headers=headers,
        json={"taskId": task_id},
        timeout=30,
    )
    response.raise_for_status()
    task = response.json()["data"]

    if task["status"] == "succeeded":
        video = requests.get(task["result_url"], timeout=120)
        video.raise_for_status()
        open("result.mp4", "wb").write(video.content)
        break

    if task["status"] == "failed":
        raise RuntimeError(task.get("error_message") or "Generation failed")

    time.sleep(4)
else:
    raise TimeoutError(f"Task {task_id} did not finish in time")

完整的 Python 请求流程

示例直接调用 Tikdek 线上接口,并处理所有任务终态。

Sora 2 + Stable + Pro

按质量与成本选择模型:sora-2, sora-2-stable 或 sora-2-pro。

可预期的轮询

创建任务后调用 check-result 轮询状态与进度,无需 SSE 长连。

20 并发支持

最多同时处理 20 个视频生成任务。如需更高并发,请通过邮件联系我们。

推荐对接流程

让集成满足生产要求

API Key 仅保存在服务端,限制重试次数,记录任务 ID,并及时持久化结果文件。

创建任务

发送 Sora 2 接口,携带提示词,并保存返回的 taskId。

跟踪进度

调用查询接口,直到状态变为 succeeded 或 failed。

分发成片

使用 result_url / result_urls 中已经上传到存储的地址向用户交付视频。

常见问题

接口如何鉴权?

在控制台创建 API Key 后,以 Authorization: Bearer YOUR_API_KEY 发送请求,可随时在控制台轮换密钥。

如何轮询获取结果?

调用创建接口后保存 taskId,每 3-5 秒调用 /api/video-generations/check-result,直到状态为 succeeded 或 failed,再使用 result_url/result_urls。

失败任务的积分如何处理?

系统会自动返还积分,并在查询结果中返回 refund_trans_no 与 credits_refunded=true,便于对账。

从脚本走向生产

先创建 API Key 并运行示例,任务量提升后再接入 Webhook。