# 视频模型 — video_attributes 字段与实时查询 Source: https://ofox.ai/zh/docs/api/videos/models [`POST /v1/videos`](https://ofox.ai/zh/docs/api/videos/create) 上的所有视频模型共用同一套请求结构,差异在于可接受的分辨率、时长、画幅与生成模式。每个模型的这些能力由 [Models API](https://ofox.ai/zh/docs/api/openai/models) 返回的 `video_attributes` 对象描述,本页说明该对象的字段与查询方法。 各模型的参数取值见系列页:[Seedance](https://ofox.ai/zh/docs/develop/models/seedance)、[Wan 与 HappyHorse](https://ofox.ai/zh/docs/develop/models/wan)、[Hailuo](https://ofox.ai/zh/docs/develop/models/hailuo)。 ## `video_attributes` 对象 [Models API](https://ofox.ai/zh/docs/api/openai/models) 响应中的每个视频模型都带有一个 `video_attributes` 对象,它是该模型可接受参数的权威描述。 ```json { "modes": ["t2v", "i2v", "v2v"], "resolutions": ["480p", "720p", "1080p"], "default_resolution": "720p", "min_duration_seconds": 4, "max_duration_seconds": 30, "supports_audio": true, "aspect_ratios": ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16", "adaptive"] } ``` | 字段 | 类型 | 说明 | |------|------|------| | `modes` | string[] | 模型支持的生成模式:`t2v` 文生视频,`i2v` 图生视频,`v2v` 以视频为参考。请求中无需传入模式,由素材字段判断,见[模式判定](https://ofox.ai/zh/docs/api/videos/create#modes) | | `resolutions` | string[] | 可接受的 `resolution` 取值,列表之外的值会被拒绝 | | `default_resolution` | string | 请求同时省略 `resolution` 和 `size` 时套用的值 | | `min_duration_seconds` | number | `duration` 下限,单位秒 | | `max_duration_seconds` | number | `duration` 上限,单位秒 | | `supports_audio` | boolean | `generate_audio: true` 是否会生成音轨 | | `aspect_ratios` | string[] | 可接受的 `aspect_ratio` 取值,`adaptive` 表示沿用输入图的比例 | `video_attributes` 是单个模型在 `resolution`、`duration`、`aspect_ratio` 上的事实依据。[创建视频任务](https://ofox.ai/zh/docs/api/videos/create) 里列出的参数范围是所有模型的并集,因此在那里合法的取值,仍可能被某个具体模型拒绝。 ## 查询实时清单 Models API 是公开端点,不需要 API Key。按 `supported_endpoints` 过滤即可只保留视频模型: **cURL** ```bash filename="Terminal" curl -s https://api.ofox.ai/v1/models \ | jq -r '.data[] | select(.supported_endpoints[]? == "/v1/videos") | .id' ``` **Python** ```python filename="video_models.py" showLineNumbers import requests models = requests.get("https://api.ofox.ai/v1/models").json()["data"] for m in models: if "/v1/videos" in m.get("supported_endpoints", []): va = m["video_attributes"] print(m["id"], va["modes"], va["resolutions"], va["max_duration_seconds"]) ``` **TypeScript** ```typescript filename="video-models.ts" showLineNumbers const resp = await fetch('https://api.ofox.ai/v1/models') const { data } = await resp.json() for (const m of data) { if (!m.supported_endpoints?.includes('/v1/videos')) continue const va = m.video_attributes console.log(m.id, va.modes, va.resolutions, va.max_duration_seconds) } ``` 新模型上线不随文档发布,需要最新清单时请直接查询该端点。 ## 下一步 - **Seedance 系列** - **Wan 与 HappyHorse 系列** - **Hailuo 系列** - **创建视频任务** - **供应商路由** - **Video API 概览**