> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yelinai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 快速开始（同步 API）

> 快速上手 Sora 2 视频生成同步 API

\*\*寻找更稳定的方案？\*\*本页面介绍 **同步 API**（适合快速测试）。如需更稳定的生产环境方案，推荐使用[异步 API](/api-capabilities/sora2/async-api)。

## 前置要求

1

获取 API Key

登录 [YeLIn AI 控制台](https://api.yelinai.com) 获取 API 密钥

2

配置计费模式

编辑令牌设置，选择以下任一计费模式（两者价格相同）：

* **按量优先**（推荐）：优先使用余额计费，余额不足时自动切换。适合大多数用户
* **按次计费**：每次调用直接扣费。适合预算控制严格的场景

两种模式**价格完全相同**，都是 \$0.15/次（10秒或15秒），仅扣费方式不同。

<Note>
  请在 **Console** 查看对应界面截图。
</Note>

如果未设置计费模式，API调用会失败。必须先完成此配置！

## 文生视频示例

\*\*关于示例中的 `@sama`\*\*您可能注意到示例中使用了 `@sama`，这是 OpenAI CEO Sam Altman 的授权真人ID，可以让他的形象出现在视频中。**这是可选功能**：

* ✓ 可以使用 `@sama` 或其他已认证的真人ID
* ✓ 也可以不使用，直接描述普通场景（如”一只猫在花园里”）
* ✗ 不能上传真人照片（会被拒绝且扣费）

**如何让你自己出镜？** 需要在 Sora iOS 应用中完成 Cameo 认证。详见 [常见问题](/api-capabilities/sora2/troubleshooting#为什么生成人物视频失败？)

最简单的使用方式，仅使用文字描述生成视频。

cURL

Python

JavaScript

```
curl -X POST "https://api.yelinai.com/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora_video2",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "@sama 在八达岭长城上的背景，开心地口述：YeLIn AI的客户朋友们，国庆中秋佳节，玩得愉快！"
          }
        ]
      }
    ]
  }'
```

## 图生视频示例

支持上传参考图片（最多 1 张），支持 URL 和 Base64 两种方式。

cURL (URL)

Python (URL)

cURL (Base64)

```
curl -X POST "https://api.yelinai.com/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora_video2",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "生成视频：让这个手办形象从桌子上跳出来，变成活人的一个场景~"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://filesystem.site/cdn/download/20250407/OhFd8JofOAJCsNOCsM1Y794qnkNO3L.png"
            }
          }
        ]
      }
    ]
  }'
```

## 流式输出示例

启用流式输出可以实时查看生成进度。

Python (流式)

JavaScript (流式)

```
import openai
import re

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.yelinai.com/v1"
)

stream = client.chat.completions.create(
    model="sora_video2",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "一只可爱的猫咪在阳光明媚的花园里玩球"
                }
            ]
        }
    ],
    stream=True
)

# 存储完整内容以提取视频链接
full_content = ""

print("生成进度:\n")
for chunk in stream:
    if chunk.choices[0].delta.content:
        content = chunk.choices[0].delta.content
        print(content, end='', flush=True)
        full_content += content

print("\n")

# 提取视频链接
video_url_match = re.search(r'https://[^\s\)]+\.mp4', full_content)
if video_url_match:
    video_url = video_url_match.group(0)
    print(f"\n✅ 视频链接: {video_url}")
    print("⚠️  视频有效期1天，请立即下载！")
else:
    print("\n❌ 未找到视频链接，生成可能失败")
```

## 输出解读

### 流式输出格式

启用 `"stream": true` 时，API 返回 SSE（Server-Sent Events）格式：

````
data: {"id":"foaicmpl-xxx","object":"chat.completion.chunk","created":1759759480,"model":"sora_video2","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

data: {"id":"foaicmpl-xxx","object":"chat.completion.chunk","created":1759759480,"model":"sora_video2","choices":[{"index":0,"delta":{"content":"```json\n{\n    \"prompt\": \"A happy cat playing with a ball in a sunny garden\",\n    \"mode\": \"竖屏模式\"\n}\n```\n\n"},"finish_reason":null}]}

data: {"id":"foaicmpl-xxx","object":"chat.completion.chunk","created":1759759480,"model":"sora_video2","choices":[{"index":0,"delta":{"content":"> ⌛️ 任务正在队列中，请耐心等待...\n\n"},"finish_reason":null}]}

data: {"id":"foaicmpl-xxx","object":"chat.completion.chunk","created":1759759480,"model":"sora_video2","choices":[{"index":0,"delta":{"content":"> 🏃 进度：36.0%\n\n"},"finish_reason":null}]}

data: {"id":"foaicmpl-xxx","object":"chat.completion.chunk","created":1759759480,"model":"sora_video2","choices":[{"index":0,"delta":{"content":"> ✅ 视频生成成功，[点击这里](https://sora.gptkey.asia/assets/sora/xxx.mp4) 查看视频~~~\n\n"},"finish_reason":null}]}

data: {"id":"foaicmpl-xxx","object":"chat.completion.chunk","created":1759759480,"model":"sora_video2","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":17,"completion_tokens":244,"total_tokens":261}}

data: [DONE]
````

### 关键字段说明

* `choices[0].delta.content`: 包含进度信息或最终视频链接
* `finish_reason`: 为 `"stop"` 时表示生成完成
* `usage`: 最后一条消息包含 token 使用情况
* 视频链接: 在成功消息中以 Markdown 链接形式提供

### 生成时间

* **排队等待：** 视高峰期而定
* **视频生成：** 约 2-3 分钟（10秒视频）
* **总耗时：** 通常在 2.5-4 分钟之间

设置超时时间时，建议不少于 **5 分钟**（300秒），以确保视频生成完成。

## 带水印视频生成

**10/18 新增功能**默认生成的视频**无水印**。如需生成带 Sora 原生水印的视频，在 URL 添加参数 `?watermark=true`。

cURL (带水印)

Python (带水印)

```
curl -X POST "https://api.yelinai.com/v1/chat/completions?watermark=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora_video2",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "一只可爱的猫咪在阳光明媚的花园里玩球"
          }
        ]
      }
    ]
  }'
```

**使用场景：**

* 默认无水印：适合商业使用、品牌宣传等需要无水印的场景
* 带水印：适合测试、学习、展示 Sora 生成效果等场景

## 视频下载

1

获取视频链接

从 API 响应中提取视频 URL

2

立即下载

视频存储时效仅 **1 天**，请立即下载到本地

3

保存备份

建议保存到云存储或本地硬盘

视频存储在国内 CDN，国内用户访问速度快。但请注意及时下载，超过 1 天后链接将失效。

## 下一步

## 模型定价

了解不同模型的详细对比

## 更多示例

查看 Cherry Studio 等场景应用

## 常见问题

解决使用中的问题

## API 参考

查看完整的 API 文档
