{"@context":"https://schema.org","@type":"NewsArticle","generatedAt":"2026-08-31T17:00:46.511Z","headline":"OpenRouter 视频生成 API：一份代码优先的接入指南","description":"OpenRouter 推出统一的异步视频生成 API，通过 POST /api/v1/videos 提交任务、轮询状态并下载 MP4，支持 Seedance、Veo、Wan 等模型，切换模型只需更改 model 标识符。","url":"https://www.aioga.com/news/cmt8zzh0w05nirolyozmvq7i0/","mainEntityOfPage":"https://www.aioga.com/news/cmt8zzh0w05nirolyozmvq7i0/","datePublished":"2026-08-25T00:00:00.000Z","dateModified":"2026-08-25T00:00:00.000Z","inLanguage":"zh-CN","publisher":{"@type":"NewsMediaOrganization","name":"Aioga","url":"https://www.aioga.com"},"citation":["https://openrouter.ai/blog/tutorials/video-generation-api","https://aihot.virxact.com/items/cmt8zzh0w05nirolyozmvq7i0"],"canonicalUrl":"https://www.aioga.com/news/cmt8zzh0w05nirolyozmvq7i0/","directAnswer":{"@type":"Answer","text":"OpenRouter 发布统一的异步视频生成 API，应用可提交生成任务、获取任务 ID、轮询状态并下载 MP4。指南以 Seedance 为示例，并说明同一套接入流程可用于 Veo 与 Wan，切换模型主要通过更改 model 标识符完成。","url":"https://www.aioga.com/news/cmt8zzh0w05nirolyozmvq7i0/","dateCreated":"2026-08-25T00:00:00.000Z","author":{"@type":"Organization","@id":"https://www.aioga.com/authors/aioga-editorial/#editorial-team","name":"Aioga Editorial Team","url":"https://www.aioga.com/authors/aioga-editorial/"}},"evidence":[{"@type":"CreativeWork","name":"openrouter.ai source article","url":"https://openrouter.ai/blog/tutorials/video-generation-api","datePublished":"2026-08-25T00:00:00.000Z","provider":{"@type":"Organization","name":"openrouter.ai","url":"https://openrouter.ai/blog/tutorials/video-generation-api"}},{"@type":"CreativeWork","name":"AIHot archive record","url":"https://aihot.virxact.com/items/cmt8zzh0w05nirolyozmvq7i0","datePublished":"2026-08-25T00:00:00.000Z","provider":{"@type":"Organization","name":"AIHot","url":"https://aihot.virxact.com/items/cmt8zzh0w05nirolyozmvq7i0"}}],"aggregationSource":"OpenRouter：Announcements（RSS）","originalPublisher":{"name":"openrouter.ai","url":"https://openrouter.ai/blog/tutorials/video-generation-api"},"geoDeepAnswer":null,"article":{"id":"cmt8zzh0w05nirolyozmvq7i0","slug":"cmt8zzh0w05nirolyozmvq7i0","url":"https://www.aioga.com/news/cmt8zzh0w05nirolyozmvq7i0/","title":"OpenRouter 视频生成 API：一份代码优先的接入指南","title_en":"OpenRouter Video Generation API： A Code-First Guide","summary":"OpenRouter 推出统一的异步视频生成 API，通过 POST /api/v1/videos 提交任务、轮询状态并下载 MP4，支持 Seedance、Veo、Wan 等模型，切换模型只需更改 model 标识符。","source":"OpenRouter：Announcements（RSS）","sourceUrl":"https://openrouter.ai/blog/tutorials/video-generation-api","aiHotUrl":"https://aihot.virxact.com/items/cmt8zzh0w05nirolyozmvq7i0","publishedAt":"2026-08-25T00:00:00.000Z","category":"技巧观点","score":66,"selected":true,"articleBody":["Adding video generation to an application is straightforward when you’re testing one model. The complexity shows up when you want to try another. Each provider can have its own endpoint, request parameters, job statuses, polling logic, and output format. That turns a simple model change into another integration to build and maintain.","We put that workflow behind one asynchronous video API：https://openrouter.ai/docs/guides/overview/multimodal/video-generation. You submit a prompt to POST /api/v1/videos , receive a job ID, poll until generation completes, and then download the finished video.","In this guide, we’ll build that flow from start to finish. We’ll submit a job with Seedance, poll it safely, save the MP4, and then run the same integration with Veo and Wan.","Video generation takes longer than a typical API response. A model has to generate and coordinate many frames, maintain visual consistency across them, and sometimes produce matching audio. Depending on the model and requested settings, that process can take from several seconds to a few minutes.","Keeping the original HTTP request open for that entire period is fragile. A browser session can close, a serverless function can reach its execution limit, or a proxy can time out before the video is ready.","An asynchronous API separates submission from completion:","Your application can keep running while the model works in the background. It can also recover a job after a restart because generation is attached to a persistent job ID rather than a long-lived connection.","A direct provider integration can work well when you already know which model you want and don’t expect that to change. You use the provider’s authentication, request format, job statuses, polling endpoint, and output response.","The additional work becomes visible when you want to compare another model. The new provider may use different field names for duration and resolution, or return a different job object with different terminal statuses. It may also require another method for downloading the finished asset. Your application then needs a second client, another set of environment variables, and more provider-specific error handling.","There’s nothing inherently wrong with that approach. It just means switching models is an integration change instead of a configuration change, which makes experimentation slower and raises the maintenance cost as your model list grows.","Local generation gives you the most control. You can choose the model weights, customize the workflow, keep assets within your own environment, and avoid paying a hosted provider for every generation.","That control comes with infrastructure responsibilities. You need suitable GPU capacity and the right Python and CUDA dependencies. You also need enough storage and a working environment for each model family. Higher resolutions and longer videos increase memory and processing requirements, and adding another model may mean downloading more weights or maintaining another workflow.","This can be worthwhile for teams that already operate GPU infrastructure or require local processing. It’s a heavier starting point when your goal is to add video generation quickly and test several models. The hosted OpenRouter path removes most of that setup, which is what the rest of this guide covers.","We keep the generation lifecycle consistent across supported video models. The application uses the same API key, POST /api/v1/videos endpoint, job-status flow, and output-retrieval process whether the selected model is Seedance, Veo, Wan, or another model in the catalog.","The models still have different capabilities. One may support longer durations, while another offers additional aspect ratios, higher resolutions, audio generation, or provider-specific controls. We expose those differences through the video-model endpoint rather than forcing every model into an identical feature set.","That gives you a stable integration without hiding what makes each model different. Your application can query the current capabilities, build a valid request, and change models without replacing the surrounding job infrastructure.","You only need an OpenRouter API key and a tool that can send HTTP requests. The examples here use Python with requests and TypeScript with the built-in fetch API, but the workflow works from any language that can make an HTTP request.","Start by creating an API key from your OpenRouter account, then store it in an environment variable instead of adding it directly to your source code:","For the Python examples, install requests if you don’t already have it:","OpenRouter authenticates API requests with a bearer token. In Python, we’ll define the shared values once and reuse them throughout the guide:","Before submitting a job, you can also query the video-model endpoint：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#via-the-video-models-api to see which models are currently available and what each one supports:","The response includes each model’s supported durations, resolutions, aspect ratios, frame-image support, audio capabilities, pricing SKUs, and provider-specific parameters. This is more reliable than assuming that settings accepted by one video model will also work with another.","Send a POST request to /api/v1/videos with the video model. Include a prompt that describes what you want to generate.","model is required on every request, and prompt is required for text-to-video. Models that support generating a video from image input alone can omit it. You can also provide optional settings such as duration, resolution, aspect ratio, audio generation, reference images, and a seed when the selected model supports them.","We’ll use the same prompt throughout the guide:","The following function submits the job using Seedance 2.0:","A successful request returns HTTP 202 Accepted. The response represents a background job, not the finished video:","Store the returned job ID before continuing. If your process restarts, you should be able to resume tracking the existing job instead of submitting and paying for another generation.","The polling_url returned in Step 1 points to the same job resource you’d reach at GET /api/v1/videos/{id} , they’re the same endpoint. A video job can move through the following statuses:","Your polling loop should return on completed and stop with an error on failed , cancelled , or expired . Otherwise, the application could keep checking a job that will never produce a video.","Documented responses return polling_url as a complete URL. The urljoin call below is defensive coding that also handles a relative path, so the loop works either way:","This loop includes two safeguards that quick examples often omit. First, it handles every documented terminal state instead of waiting only for completed . Second, it sets a one-hour timeout so a job can’t leave the process running indefinitely. One edge case worth knowing: because the deadline is checked before each sleep rather than after, a job can run up to one poll interval past the nominal timeout in the worst case before the loop catches it. That’s a fine trade-off for a background job. If you need a hard ceiling, check the deadline again immediately after waking from sleep too.","Our current guidance uses a 30-second polling interval：https://openrouter.ai/docs/guides/overview/multimodal/video-generation. Video jobs usually take from around 30 seconds to several minutes, and checking every second doesn’t make the provider finish sooner. That interval and the timeout ceiling above are both operational guidance, not a documented contract from the endpoint itself, so tune them to your own workload.","The same polling flow in TypeScript:","Treat a failed status request differently from a failed video job . A temporary timeout while polling doesn’t prove the generation itself failed. Retry the status request for the same job ID rather than submitting a new job.","When the status becomes completed , the job response includes a populated unsigned_urls array. Each entry points at the job’s authenticated content endpoint:","The index defaults to 0. It only needs to change when a model returns multiple video outputs. Despite the field name, these URLs are not presigned, so send your API key in the Authorization header just as you did while polling.","The helper below uses the first unsigned URL when one is present and reconstructs the content URL from the job ID on the rare chance it isn’t.","Streaming the response in chunks avoids loading the entire MP4 into memory before writing it to disk.","Here’s the TypeScript equivalent. Note that this version buffers the download into memory rather than streaming it to disk, which is fine for short clips but worth swapping for a piped stream if you’re routinely downloading long or high-resolution video:","At this point, you have a generated MP4 on disk. Move completed videos to storage you control instead of treating the generation endpoint as permanent file hosting. The completed job may also include a usage object containing the final cost, which is part of the response body regardless of which language you’re using:","Store that value with your internal job record so you can track the actual cost of each generation.","The submission, polling, and download functions aren’t tied to Seedance. To use another supported video model, change the model identifier:","The endpoint, authentication, response shape, status handling, and download logic stay the same across all three. What doesn’t automatically carry over is every optional setting. Model switching is a one-line change to the code, but it isn’t a guarantee that any given duration, resolution, or aspect ratio combination will validate on the new model. This configuration happens to be portable across all three models covered in this guide:","At the time of writing, the live model endpoint shows Seedance 2.0, Veo 3.1, and Wan 2.7 all supporting that specific combination: four seconds, 720p, 16:9. That’s a shared configuration across these three examples, not a claim that every setting works identically on every model. Move outside it and the differences show up quickly:","A five-second request would validate against Seedance and Wan but fail on Veo. That’s why your application should query /api/v1/videos/models before submitting a request rather than assuming that settings accepted by one model will work on another. The numbers above are worth re-checking against that live endpoint before you rely on them, since model capabilities do change.","The same endpoint also exposes allowed_passthrough_parameters for model-specific features. These are the keys you’re permitted to send inside the request’s provider.options object, which is keyed by provider slug, such as provider.options[\"google-vertex\"].parameters . Only the options for the provider that serves your request are forwarded, and unrecognized keys are dropped. Veo, for example, currently lists controls such as negativePrompt and enhancePrompt , while Wan exposes options including negative_prompt and prompt_extend .","The code above is enough to generate and download one video. Once this is running in production, the questions change: you need to control cost, separate job failures from network failures, avoid duplicate processing, and keep tracking jobs after the submitting process exits.","Video-generation pricing varies by model and configuration. Duration, resolution, audio generation, and the provider’s billing method can all affect the final cost. Local generation shifts that cost structure entirely, with no per-clip fee but real upfront hardware and maintenance cost instead. A hosted API keeps that cost variable and tied to usage, which is cheaper or more expensive depending on your volume and whether you already own the hardware.","Don’t build one universal cost formula into your application. Query /api/v1/videos/models and read the selected model’s pricing_skus before displaying an estimate or submitting a large batch. When the job completes, the response can include a usage object with the actual cost of that generation:","Before running a large batch, estimate the cost using the current model data, then compare the estimate with the actual usage.cost values returned by completed jobs. This also helps you spot unexpected changes caused by a higher resolution, longer duration, generated audio, or a different model.","A failed polling request isn’t the same as a failed video-generation job . Your application may lose its connection while checking status even though the provider is still generating the video. If you submit the prompt again immediately, both jobs may complete, leaving you with two videos and two charges for one user request.","Persist the OpenRouter job ID as soon as submission succeeds. A useful job record might contain fields like these:","When a status request fails because of a timeout, connection error, or temporary server response, retry the status request using the existing job ID. Only create a new generation after the job itself reaches failed , cancelled , or expired , and only if your application’s retry policy allows another attempt.","Keep job retries separate from polling retries. A polling retry checks the same job again, while a generation retry creates a new paid job. Cap generation retries and retain every job ID created for the same internal request, so you have a complete record when you need to investigate duplicate outputs, provider failures, or unexpected costs.","Polling：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#poll-response is a good default for scripts, prototypes, and small numbers of jobs. It becomes less efficient when your application may have hundreds of generations running at once.","To receive the result automatically, include an HTTPS callback_url when submitting the job：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#webhooks:","You can set the callback for an individual request or configure a default callback for the workspace. The request-level value takes precedence over the workspace default.","We send the webhook when the job reaches a terminal state. Each delivery includes an X-OpenRouter-Idempotency-Key , such as:","Store that value before processing the event. If the webhook is delivered again, your handler can recognize that the job’s already been handled instead of downloading the video or starting the next workflow twice."],"articleImages":[{"sourceUrl":"https://openrouter.ai/blog/images/video-generation-api.png","alt":"OpenRouter Video Generation API: A Code-First Guide","afterParagraph":0,"url":"/media/articles/cmt8zzh0w05nirolyozmvq7i0/f338860c65aed0b0.png"}],"mediaStatus":"ok","articleBodyZh":["当你只测试一个模型时，将视频生成功能添加到应用中是很简单的。但当你想尝试另一个模型时，复杂性就出现了。每个提供商可能都有自己的端点、请求参数、作业状态、轮询逻辑和输出格式。这会将一个简单的模型更换变成需要构建和维护的另一个集成。","我们将该工作流程整合到一个异步视频 API 中：https://openrouter.ai/docs/guides/overview/multimodal/video-generation。你只需向 POST /api/v1/videos 提交提示，接收作业 ID，轮询直到生成完成，然后下载完成的视频。","在本指南中，我们将从头到尾构建这一流程。我们将用 Seedance 提交作业，安全地轮询，保存 MP4 文件，然后用 Veo 和 Wan 运行相同的集成。","视频生成比典型的 API 响应需要更长时间。模型必须生成和协调多个帧，保持它们之间的视觉一致性，有时还要生成匹配的音频。根据模型和请求的设置，这一过程可能需要几秒到几分钟不等。","在整个过程中保持原始 HTTP 请求开启是脆弱的。浏览器会话可能关闭，无服务器函数可能达到执行限制，或者代理可能在视频准备就绪之前超时。","异步 API 将提交与完成分离：","当模型在后台工作时，你的应用可以继续运行。它还可以在重启后恢复作业，因为生成任务绑定到持久的作业 ID，而不是长时间保持的连接。","当你已经知道要使用哪个模型，并且不希望改变时，直接的提供商集成效果很好。你可以使用提供商的认证、请求格式、作业状态、轮询端点以及输出响应。","当你想比较另一个模型时，额外的工作就显现出来。新的提供商可能对时长和分辨率使用不同的字段名，或者返回带有不同终端状态的不同作业对象。它还可能需要另一种方法来下载完成的资源。你的应用因此需要第二个客户端、另一组环境变量，以及更多针对提供商的错误处理。","这种方法本身没有问题。它只是意味着切换模型是一个集成上的变化，而不是配置上的变化，这会让实验变慢，并随着模型列表的增长增加维护成本。","本地生成能让你获得最大的控制权。你可以选择模型权重、自定义工作流程、将资源保存在自己的环境中，并避免为每次生成向托管提供商付费。","这种控制权伴随着基础设施的责任。你需要合适的 GPU 容量以及正确的 Python 和 CUDA 依赖。你还需要为每个模型家族提供足够的存储和可用环境。更高的分辨率和更长的视频会增加内存和处理需求，而增加另一个模型可能意味着需要下载更多权重或维护另一个工作流程。","对于已经运营 GPU 基础设施或需要本地处理的团队来说，这是值得的。如果你的目标是快速添加视频生成并测试多个模型，这是一种更重的起点。托管的 OpenRouter 路径则省去了大部分设置，这也是本指南其余部分所涵盖的内容。","我们在支持的视频模型间保持生成生命周期的一致性。无论选择的模型是 Seedance、Veo、Wan 还是目录中的其他模型，应用程序都使用相同的 API 密钥、POST /api/v1/videos 端点、任务状态流程和输出获取流程。","这些模型仍然有不同的能力。有的可能支持更长的时长，而有的可能提供额外的宽高比、更高分辨率、音频生成或特定提供商的控制。我们通过 video-model 端点暴露这些差异，而不是强制每个模型拥有相同的功能集。","这让你在保持稳定集成的同时，不隐藏每个模型的差异。你的应用程序可以查询当前能力，构建有效请求，并在不替换周围任务基础设施的情况下更换模型。","你只需要一个 OpenRouter API 密钥和一个可以发送 HTTP 请求的工具。这里的示例使用 Python 的 requests 和 TypeScript 的内置 fetch API，但该工作流程适用于任何能够发出 HTTP 请求的语言。","首先从你的 OpenRouter 账户创建一个 API 密钥，然后将其存储在环境变量中，而不是直接添加到源代码中：","对于 Python 示例，如果你还没有安装 requests，请先安装：","OpenRouter 使用 Bearer 令牌对 API 请求进行身份验证。在 Python 中，我们将一次性定义共享值，并在整个指南中重复使用：","在提交任务之前，你还可以查询 video-model 端点：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#via-the-video-models-api，以查看当前可用的模型及每个模型支持的内容：","响应包括每个模型支持的时长、分辨率、宽高比、帧图像支持、音频功能、价格 SKU 以及特定提供商的参数。这比假设一个视频模型接受的设置也适用于另一个模型更可靠。","发送 POST 请求到 /api/v1/videos 并使用视频模型。包括描述你希望生成的内容的提示（prompt）。","每个请求都必须包含 model 参数，而文本到视频请求必须包含 prompt。仅支持从图像输入生成视频的模型可以省略 prompt。当所选模型支持时，你还可以提供可选设置，例如时长、分辨率、宽高比、音频生成、参考图像和种子（seed）。","在整个指南中，我们将使用相同的提示：","以下函数使用 Seedance 2.0 提交作业：","成功请求将返回 HTTP 202 Accepted。响应表示后台任务，而不是完成的视频：","在继续之前存储返回的任务 ID。如果你的进程重启，你应该能够继续跟踪现有任务，而不必重新提交并支付另一次生成费用。","步骤 1 返回的 polling_url 指向与 GET /api/v1/videos/{id} 相同的任务资源，它们是同一个端点。视频任务可以经历以下状态：","你的轮询循环在 completed 状态时应返回，在 failed、cancelled 或 expired 状态时应停止并报错。否则，应用程序可能会一直检查永远不会生成视频的任务。","文档化的响应会将 polling_url 返回为完整的 URL。下面的 urljoin 调用是一种防御性编码，也可以处理相对路径，因此循环在任何情况下都能工作：","这个循环包含两个快速示例中经常省略的安全措施。首先，它处理每一个文档化的终止状态，而不是只等待完成的状态。第二，它设置了一个一小时的超时，因此作业不会无限期地运行进程。值得注意的一个边缘情况是：因为在每次 sleep 之前检查截止时间而不是之后，作业在最坏情况下可能会超过名义超时一个轮询间隔才被循环发现。对于后台作业来说，这是一个可以接受的权衡。如果你需要严格的上限，可以在从 sleep 唤醒后立即再次检查截止时间。","我们目前的指导使用 30 秒的轮询间隔：https://openrouter.ai/docs/guides/overview/multimodal/video-generation。视频作业通常从大约 30 秒到几分钟不等，每秒检查一次不会让提供者更快完成。上述间隔和超时上限都是操作性指导，并非端点本身的文档化约定，因此可根据自己的工作负载进行调整。","TypeScript 中相同的轮询流程：","将请求状态失败与视频作业失败区分处理。轮询期间的临时超时并不表示生成本身失败。应重试相同作业 ID 的状态请求，而不是提交新作业。","当状态变为 completed 时，作业响应会包括填充的 unsigned_urls 数组。每个条目都指向作业的认证内容端点：","索引默认值为 0。只有在模型返回多个视频输出时才需更改。尽管字段名为 unsigned_urls，这些 URL 并不是预签名的，因此在轮询时同样在 Authorization 头中发送你的 API 密钥。","下面的助手在存在第一个 unsigned URL 时使用它，在极少数情况下，如果不存在，则从作业 ID 重建内容 URL。","分块流式传输响应可以避免在写入磁盘前将整个 MP4 加载到内存中。","这是 TypeScript 的等效版本。请注意，此版本将下载缓冲到内存中，而不是直接流式写入磁盘，对于短视频片段来说没问题，但如果你经常下载长时间或高分辨率视频，值得改为管道流式写入：","到此为止，您已经在磁盘上生成了 MP4。请将完成的视频移动到您控制的存储中，而不是将生成端点视为永久文件托管。完成的作业也可能包含一个 usage 对象，记录最终成本，无论使用哪种语言，这都是响应体的一部分：","将该值与您的内部作业记录一起存储，以便跟踪每次生成的实际成本。","提交、轮询和下载功能并不限于 Seedance。若要使用其他支持的视频模型，请更改模型标识符：","端点、身份验证、响应格式、状态处理和下载逻辑在三个模型中保持一致。无法自动继承的是每个可选设置。切换模型在代码中只需一行，但不能保证任何给定的时长、分辨率或纵横比组合在新模型上也能验证通过。本指南涵盖的配置恰好可以在所有三个模型间移植：","在撰写本文时，实时模型端点显示 Seedance 2.0、Veo 3.1 和 Wan 2.7 都支持该特定组合：四秒，720p，16:9。这个配置在这三个示例中是共享的，而不是说每个设置在每个模型上都能完全相同。超出这个范围，差异会很快显现：","五秒的请求可以在 Seedance 和 Wan 上验证成功，但在 Veo 上会失败。这就是为什么您的应用应在提交请求前查询 /api/v1/videos/models，而不是假设一个模型接受的设置在另一个模型上也有效。上述数字在依赖之前，值得再次在实时端点上检查，因为模型能力确实会变化。","同一个端点还会暴露 model-specific 功能的 allowed_passthrough_parameters。这些是你允许在请求的 provider.options 对象内发送的键，该对象以提供商的 slug 为键，例如 provider.options[\"google-vertex\"].parameters。只有为你的请求提供服务的提供商的选项会被转发，未识别的键会被丢弃。例如，Veo 目前列出了如 negativePrompt 和 enhancePrompt 这样的控制，而 Wan 则暴露了包括 negative_prompt 和 prompt_extend 在内的选项。","上述代码足以生成并下载一个视频。一旦在生产环境中运行，问题就会发生变化：你需要控制成本，将作业失败与网络失败区分开，避免重复处理，并在提交进程退出后继续跟踪作业。","视频生成价格因模型和配置而异。时长、分辨率、音频生成以及提供商的计费方式都可能影响最终成本。本地生成会完全改变成本结构，没有每个剪辑的费用，但需要预先支付硬件和维护成本。托管的 API 则将成本变量化并绑定到使用量上，根据你的使用量以及是否已有硬件，可能更便宜或更昂贵。","不要在你的应用中构建一个通用的成本公式。在显示估算或提交大量批次之前，查询 /api/v1/videos/models 并读取所选模型的 pricing_skus。当作业完成时，响应可能包含一个 usage 对象，显示该生成的实际成本：","在运行大批量作业之前，使用当前模型数据估算成本，然后将估算值与已完成作业返回的实际 usage.cost 值进行比较。这也有助于你发现因更高分辨率、更长时长、生成音频或使用不同模型而导致的意外变化。","轮询请求失败并不等同于视频生成作业失败。当检查状态时，你的应用可能会丢失连接，而提供商仍在生成视频。如果你立即重新提交提示，两个作业都有可能完成，导致你得到两个视频并为一次用户请求支付两次费用。","一旦提交成功，就要持久化 OpenRouter 作业 ID。一个有用的作业记录可能包含如下字段：","当状态请求因超时、连接错误或临时服务器响应失败时，请使用现有的作业 ID 重试状态请求。只有在作业本身达到失败、已取消或已过期状态时，且您的应用程序的重试策略允许再次尝试时，才创建新的生成。","将作业重试与轮询重试分开。轮询重试会再次检查相同的作业，而生成重试会创建一个新的付费作业。限制生成重试次数，并保留为同一内部请求创建的每个作业 ID，以便在需要调查重复输出、提供方故障或意外费用时拥有完整记录。","轮询：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#poll-response 是脚本、原型和少量作业的良好默认选项。当您的应用程序可能同时运行数百个生成时，它的效率会下降。","要自动接收结果，请在提交作业时包含 HTTPS callback_url：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#webhooks","您可以为单个请求设置回调，也可以为工作区配置默认回调。请求级别的值优先于工作区默认值。","当作业达到终态时，我们会发送 webhook。每次传递都包含 X-OpenRouter-Idempotency-Key，如下所示：","在处理事件之前存储该值。如果 webhook 再次传递，您的处理程序可以识别该作业已被处理，而不是重复下载视频或启动下一工作流程。"],"translationStatus":"translated","bodyOrigin":"source-page","editorial":{"summary":"OpenRouter 发布统一的异步视频生成 API，应用可提交生成任务、获取任务 ID、轮询状态并下载 MP4。指南以 Seedance 为示例，并说明同一套接入流程可用于 Veo 与 Wan，切换模型主要通过更改 model 标识符完成。","background":"视频生成通常需要数秒至数分钟，长时间保持原始 HTTP 请求可能受到浏览器关闭、无服务器函数执行限制或代理超时影响。OpenRouter 将任务提交与生成完成分离，并以持久化任务 ID 支持应用在重启后恢复任务。","viewpoint":"Aioga 判断，这套设计的核心价值在于统一不同模型的任务状态、轮询逻辑和输出处理，可能减少多供应商接入时的重复开发。不过，材料未说明具体性能、费用、可用性或模型间输出质量差异，不能据此判断其综合优势。","implications":"值得关注的是，异步任务机制更适合需要排队、重试和后台处理的视频应用；统一接口也可能降低尝试不同模型的接入门槛。但实际工程收益仍取决于任务状态处理、失败恢复以及各模型请求参数的适配程度。","nextStep":"建议开发者先依据指南完成一次从任务提交、状态轮询到 MP4 下载的完整验证，再分别测试 Seedance、Veo 和 Wan 的请求参数与结果处理。上线前应重点核对长任务超时、应用重启后的任务恢复及异常状态处理。","evidenceRefs":["title","summary","articleBody","source"],"status":"published","aiGenerated":true,"autoApproved":true,"generatedBy":"aioga-editorial:gpt-5.6-sol","reviewedBy":"aioga-editorial-review:gpt-5.6-sol","generatedAt":"2026-08-26T19:42:07.393Z","sourceHash":"2ca4630a8f5aacec","review":{"approved":true,"groundedness":94,"clarity":93,"duplicationRisk":18,"blockingIssues":[],"notes":["“更适合需要排队、重试和后台处理的视频应用”中的“后台处理”有来源支持，但材料未直接介绍排队与重试机制；该表述属于合理的工程推论，且未被写成确定事实。","“失败恢复”可能被理解为 API 提供失败任务的自动恢复能力，而来源仅明确说明可凭持久化任务 ID 在应用重启后恢复任务；建议在后续编辑中将其具体化为“应用重启后的任务恢复与失败状态处理”。","观点部分已明确使用“判断”“可能”等限定语，并指出材料未覆盖性能、费用、可用性和质量差异，没有将推测冒充已证实事实。"]},"validation":{"passed":true,"mode":"ai-auto","revisions":0,"checks":["schema","length","source-attribution","low-source-overlap","no-html","independent-ai-review"]}},"tags":["技巧观点","OpenRouter：Announcements（RSS）"],"translations":{"zh-CN":{"title":"OpenRouter 视频生成 API：一份代码优先的接入指南","summary":"OpenRouter 推出统一的异步视频生成 API，通过 POST /api/v1/videos 提交任务、轮询状态并下载 MP4，支持 Seedance、Veo、Wan 等模型，切换模型只需更改 model 标识符。 🔗 阅读原文 via AIHOT · https://aihot.virxact.com/items/cmt8zzh0w05nirolyozmvq7i0","category":"行业动态","source":"openrouter.ai","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter 视频生成 API：一份代码优先的接入指南 - Aioga AI资讯","description":"OpenRouter 推出统一的异步视频生成 API，通过 POST /api/v1/videos 提交任务、轮询状态并下载 MP4，支持 Seedance、Veo、Wan 等模型，切换模型只需更改 model 标识符。 🔗 阅读原文 via AIHOT · https://aihot.virxact.com/items/cmt8zzh0w05nirolyo...","url":"https://www.aioga.com/news/cmt8zzh0w05nirolyozmvq7i0/","articleBody":["当你只测试一个模型时，将视频生成功能添加到应用中是很简单的。但当你想尝试另一个模型时，复杂性就出现了。每个提供商可能都有自己的端点、请求参数、作业状态、轮询逻辑和输出格式。这会将一个简单的模型更换变成需要构建和维护的另一个集成。","我们将该工作流程整合到一个异步视频 API 中：https://openrouter.ai/docs/guides/overview/multimodal/video-generation。你只需向 POST /api/v1/videos 提交提示，接收作业 ID，轮询直到生成完成，然后下载完成的视频。","在本指南中，我们将从头到尾构建这一流程。我们将用 Seedance 提交作业，安全地轮询，保存 MP4 文件，然后用 Veo 和 Wan 运行相同的集成。","视频生成比典型的 API 响应需要更长时间。模型必须生成和协调多个帧，保持它们之间的视觉一致性，有时还要生成匹配的音频。根据模型和请求的设置，这一过程可能需要几秒到几分钟不等。","在整个过程中保持原始 HTTP 请求开启是脆弱的。浏览器会话可能关闭，无服务器函数可能达到执行限制，或者代理可能在视频准备就绪之前超时。","异步 API 将提交与完成分离：","当模型在后台工作时，你的应用可以继续运行。它还可以在重启后恢复作业，因为生成任务绑定到持久的作业 ID，而不是长时间保持的连接。","当你已经知道要使用哪个模型，并且不希望改变时，直接的提供商集成效果很好。你可以使用提供商的认证、请求格式、作业状态、轮询端点以及输出响应。","当你想比较另一个模型时，额外的工作就显现出来。新的提供商可能对时长和分辨率使用不同的字段名，或者返回带有不同终端状态的不同作业对象。它还可能需要另一种方法来下载完成的资源。你的应用因此需要第二个客户端、另一组环境变量，以及更多针对提供商的错误处理。","这种方法本身没有问题。它只是意味着切换模型是一个集成上的变化，而不是配置上的变化，这会让实验变慢，并随着模型列表的增长增加维护成本。","本地生成能让你获得最大的控制权。你可以选择模型权重、自定义工作流程、将资源保存在自己的环境中，并避免为每次生成向托管提供商付费。","这种控制权伴随着基础设施的责任。你需要合适的 GPU 容量以及正确的 Python 和 CUDA 依赖。你还需要为每个模型家族提供足够的存储和可用环境。更高的分辨率和更长的视频会增加内存和处理需求，而增加另一个模型可能意味着需要下载更多权重或维护另一个工作流程。","对于已经运营 GPU 基础设施或需要本地处理的团队来说，这是值得的。如果你的目标是快速添加视频生成并测试多个模型，这是一种更重的起点。托管的 OpenRouter 路径则省去了大部分设置，这也是本指南其余部分所涵盖的内容。","我们在支持的视频模型间保持生成生命周期的一致性。无论选择的模型是 Seedance、Veo、Wan 还是目录中的其他模型，应用程序都使用相同的 API 密钥、POST /api/v1/videos 端点、任务状态流程和输出获取流程。","这些模型仍然有不同的能力。有的可能支持更长的时长，而有的可能提供额外的宽高比、更高分辨率、音频生成或特定提供商的控制。我们通过 video-model 端点暴露这些差异，而不是强制每个模型拥有相同的功能集。","这让你在保持稳定集成的同时，不隐藏每个模型的差异。你的应用程序可以查询当前能力，构建有效请求，并在不替换周围任务基础设施的情况下更换模型。","你只需要一个 OpenRouter API 密钥和一个可以发送 HTTP 请求的工具。这里的示例使用 Python 的 requests 和 TypeScript 的内置 fetch API，但该工作流程适用于任何能够发出 HTTP 请求的语言。","首先从你的 OpenRouter 账户创建一个 API 密钥，然后将其存储在环境变量中，而不是直接添加到源代码中：","对于 Python 示例，如果你还没有安装 requests，请先安装：","OpenRouter 使用 Bearer 令牌对 API 请求进行身份验证。在 Python 中，我们将一次性定义共享值，并在整个指南中重复使用：","在提交任务之前，你还可以查询 video-model 端点：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#via-the-video-models-api，以查看当前可用的模型及每个模型支持的内容：","响应包括每个模型支持的时长、分辨率、宽高比、帧图像支持、音频功能、价格 SKU 以及特定提供商的参数。这比假设一个视频模型接受的设置也适用于另一个模型更可靠。","发送 POST 请求到 /api/v1/videos 并使用视频模型。包括描述你希望生成的内容的提示（prompt）。","每个请求都必须包含 model 参数，而文本到视频请求必须包含 prompt。仅支持从图像输入生成视频的模型可以省略 prompt。当所选模型支持时，你还可以提供可选设置，例如时长、分辨率、宽高比、音频生成、参考图像和种子（seed）。","在整个指南中，我们将使用相同的提示：","以下函数使用 Seedance 2.0 提交作业：","成功请求将返回 HTTP 202 Accepted。响应表示后台任务，而不是完成的视频：","在继续之前存储返回的任务 ID。如果你的进程重启，你应该能够继续跟踪现有任务，而不必重新提交并支付另一次生成费用。","步骤 1 返回的 polling_url 指向与 GET /api/v1/videos/{id} 相同的任务资源，它们是同一个端点。视频任务可以经历以下状态：","你的轮询循环在 completed 状态时应返回，在 failed、cancelled 或 expired 状态时应停止并报错。否则，应用程序可能会一直检查永远不会生成视频的任务。","文档化的响应会将 polling_url 返回为完整的 URL。下面的 urljoin 调用是一种防御性编码，也可以处理相对路径，因此循环在任何情况下都能工作：","这个循环包含两个快速示例中经常省略的安全措施。首先，它处理每一个文档化的终止状态，而不是只等待完成的状态。第二，它设置了一个一小时的超时，因此作业不会无限期地运行进程。值得注意的一个边缘情况是：因为在每次 sleep 之前检查截止时间而不是之后，作业在最坏情况下可能会超过名义超时一个轮询间隔才被循环发现。对于后台作业来说，这是一个可以接受的权衡。如果你需要严格的上限，可以在从 sleep 唤醒后立即再次检查截止时间。","我们目前的指导使用 30 秒的轮询间隔：https://openrouter.ai/docs/guides/overview/multimodal/video-generation。视频作业通常从大约 30 秒到几分钟不等，每秒检查一次不会让提供者更快完成。上述间隔和超时上限都是操作性指导，并非端点本身的文档化约定，因此可根据自己的工作负载进行调整。","TypeScript 中相同的轮询流程：","将请求状态失败与视频作业失败区分处理。轮询期间的临时超时并不表示生成本身失败。应重试相同作业 ID 的状态请求，而不是提交新作业。","当状态变为 completed 时，作业响应会包括填充的 unsigned_urls 数组。每个条目都指向作业的认证内容端点：","索引默认值为 0。只有在模型返回多个视频输出时才需更改。尽管字段名为 unsigned_urls，这些 URL 并不是预签名的，因此在轮询时同样在 Authorization 头中发送你的 API 密钥。","下面的助手在存在第一个 unsigned URL 时使用它，在极少数情况下，如果不存在，则从作业 ID 重建内容 URL。","分块流式传输响应可以避免在写入磁盘前将整个 MP4 加载到内存中。","这是 TypeScript 的等效版本。请注意，此版本将下载缓冲到内存中，而不是直接流式写入磁盘，对于短视频片段来说没问题，但如果你经常下载长时间或高分辨率视频，值得改为管道流式写入：","到此为止，您已经在磁盘上生成了 MP4。请将完成的视频移动到您控制的存储中，而不是将生成端点视为永久文件托管。完成的作业也可能包含一个 usage 对象，记录最终成本，无论使用哪种语言，这都是响应体的一部分：","将该值与您的内部作业记录一起存储，以便跟踪每次生成的实际成本。","提交、轮询和下载功能并不限于 Seedance。若要使用其他支持的视频模型，请更改模型标识符：","端点、身份验证、响应格式、状态处理和下载逻辑在三个模型中保持一致。无法自动继承的是每个可选设置。切换模型在代码中只需一行，但不能保证任何给定的时长、分辨率或纵横比组合在新模型上也能验证通过。本指南涵盖的配置恰好可以在所有三个模型间移植：","在撰写本文时，实时模型端点显示 Seedance 2.0、Veo 3.1 和 Wan 2.7 都支持该特定组合：四秒，720p，16:9。这个配置在这三个示例中是共享的，而不是说每个设置在每个模型上都能完全相同。超出这个范围，差异会很快显现：","五秒的请求可以在 Seedance 和 Wan 上验证成功，但在 Veo 上会失败。这就是为什么您的应用应在提交请求前查询 /api/v1/videos/models，而不是假设一个模型接受的设置在另一个模型上也有效。上述数字在依赖之前，值得再次在实时端点上检查，因为模型能力确实会变化。","同一个端点还会暴露 model-specific 功能的 allowed_passthrough_parameters。这些是你允许在请求的 provider.options 对象内发送的键，该对象以提供商的 slug 为键，例如 provider.options[\"google-vertex\"].parameters。只有为你的请求提供服务的提供商的选项会被转发，未识别的键会被丢弃。例如，Veo 目前列出了如 negativePrompt 和 enhancePrompt 这样的控制，而 Wan 则暴露了包括 negative_prompt 和 prompt_extend 在内的选项。","上述代码足以生成并下载一个视频。一旦在生产环境中运行，问题就会发生变化：你需要控制成本，将作业失败与网络失败区分开，避免重复处理，并在提交进程退出后继续跟踪作业。","视频生成价格因模型和配置而异。时长、分辨率、音频生成以及提供商的计费方式都可能影响最终成本。本地生成会完全改变成本结构，没有每个剪辑的费用，但需要预先支付硬件和维护成本。托管的 API 则将成本变量化并绑定到使用量上，根据你的使用量以及是否已有硬件，可能更便宜或更昂贵。","不要在你的应用中构建一个通用的成本公式。在显示估算或提交大量批次之前，查询 /api/v1/videos/models 并读取所选模型的 pricing_skus。当作业完成时，响应可能包含一个 usage 对象，显示该生成的实际成本：","在运行大批量作业之前，使用当前模型数据估算成本，然后将估算值与已完成作业返回的实际 usage.cost 值进行比较。这也有助于你发现因更高分辨率、更长时长、生成音频或使用不同模型而导致的意外变化。","轮询请求失败并不等同于视频生成作业失败。当检查状态时，你的应用可能会丢失连接，而提供商仍在生成视频。如果你立即重新提交提示，两个作业都有可能完成，导致你得到两个视频并为一次用户请求支付两次费用。","一旦提交成功，就要持久化 OpenRouter 作业 ID。一个有用的作业记录可能包含如下字段：","当状态请求因超时、连接错误或临时服务器响应失败时，请使用现有的作业 ID 重试状态请求。只有在作业本身达到失败、已取消或已过期状态时，且您的应用程序的重试策略允许再次尝试时，才创建新的生成。","将作业重试与轮询重试分开。轮询重试会再次检查相同的作业，而生成重试会创建一个新的付费作业。限制生成重试次数，并保留为同一内部请求创建的每个作业 ID，以便在需要调查重复输出、提供方故障或意外费用时拥有完整记录。","轮询：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#poll-response 是脚本、原型和少量作业的良好默认选项。当您的应用程序可能同时运行数百个生成时，它的效率会下降。","要自动接收结果，请在提交作业时包含 HTTPS callback_url：https://openrouter.ai/docs/guides/overview/multimodal/video-generation#webhooks","您可以为单个请求设置回调，也可以为工作区配置默认回调。请求级别的值优先于工作区默认值。","当作业达到终态时，我们会发送 webhook。每次传递都包含 X-OpenRouter-Idempotency-Key，如下所示：","在处理事件之前存储该值。如果 webhook 再次传递，您的处理程序可以识别该作业已被处理，而不是重复下载视频或启动下一工作流程。"]},"en":{"title":"OpenRouter Video Generation API: A Code-First Integration Guide","summary":"OpenRouter has launched a unified asynchronous video generation API. You can submit tasks via POST /api/v1/videos, poll for status, and download MP4s. It supports models like Seedance, Veo, Wan, etc., and switching models only requires changing the model identifier.","category":"Industry","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter Video Generation API: A Code-First Integration Guide - Aioga AI News","description":"OpenRouter has launched a unified asynchronous video generation API. You can submit tasks via POST /api/v1/videos, poll for status, and download MP4s. It supports models like Seeda...","url":"https://www.aioga.com/en/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:47:53.582Z"},"ja":{"title":"OpenRouter 動画生成 API：コード優先の接続ガイド","summary":"OpenRouterは統一された非同期ビデオ生成APIを提供し、POST /api/v1/videosでタスクを送信し、ステータスをポーリングしてMP4をダウンロードできます。Seedance、Veo、Wanなどのモデルをサポートしており、モデルを切り替えるにはmodel識別子を変更するだけです。","category":"業界動向","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter 動画生成 API：コード優先の接続ガイド - Aioga AIニュース","description":"OpenRouterは統一された非同期ビデオ生成APIを提供し、POST /api/v1/videosでタスクを送信し、ステータスをポーリングしてMP4をダウンロードできます。Seedance、Veo、Wanなどのモデルをサポートしており、モデルを切り替えるにはmodel識別子を変更するだけです。","url":"https://www.aioga.com/ja/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:48:12.552Z"},"ko":{"title":"OpenRouter 비디오 생성 API: 코드 우선 접속 가이드","summary":"OpenRouter는 통합 비동기 비디오 생성 API를 출시했으며, POST /api/v1/videos를 통해 작업을 제출하고 상태를 폴링하며 MP4를 다운로드할 수 있습니다. Seedance, Veo, Wan 등 모델을 지원하며, 모델을 전환하려면 model 식별자만 변경하면 됩니다.","category":"업계 동향","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter 비디오 생성 API: 코드 우선 접속 가이드 - Aioga AI 뉴스","description":"OpenRouter는 통합 비동기 비디오 생성 API를 출시했으며, POST /api/v1/videos를 통해 작업을 제출하고 상태를 폴링하며 MP4를 다운로드할 수 있습니다. Seedance, Veo, Wan 등 모델을 지원하며, 모델을 전환하려면 model 식별자만 변경하면 됩니다.","url":"https://www.aioga.com/ko/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:49:14.351Z"},"es":{"title":"API de generación de video de OpenRouter: una guía de acceso orientada al código","summary":"OpenRouter lanza una API unificada de generación de video asincrónica, mediante POST /api/v1/videos se pueden enviar tareas, consultar el estado y descargar MP4, soportando modelos como Seedance, Veo, Wan, etc., y cambiar de modelo solo requiere modificar el identificador del modelo.","category":"Industria","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"API de generación de video de OpenRouter: una guía de acceso orientada al código - Aioga Noticias de IA","description":"OpenRouter lanza una API unificada de generación de video asincrónica, mediante POST /api/v1/videos se pueden enviar tareas, consultar el estado y descargar MP4, soportando modelos...","url":"https://www.aioga.com/es/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:49:07.192Z"},"fr":{"title":"API de génération vidéo OpenRouter : un guide d'intégration axé sur le code","summary":"OpenRouter lance une API unifiée de génération de vidéos asynchrones. Vous pouvez soumettre des tâches via POST /api/v1/videos, vérifier l'état en boucle et télécharger des fichiers MP4. Elle prend en charge les modèles Seedance, Veo, Wan, etc. Changer de modèle nécessite seulement de modifier l'identifiant du modèle.","category":"Industrie","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"API de génération vidéo OpenRouter : un guide d'intégration axé sur le code - Aioga Actualités IA","description":"OpenRouter lance une API unifiée de génération de vidéos asynchrones. Vous pouvez soumettre des tâches via POST /api/v1/videos, vérifier l'état en boucle et télécharger des fichier...","url":"https://www.aioga.com/fr/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:50:09.266Z"},"de":{"title":"OpenRouter Video-Generierungs-API: Ein codeorientierter Zugangsleitfaden","summary":"OpenRouter hat eine einheitliche asynchrone Video-Generierungs-API eingeführt, bei der Aufgaben über POST /api/v1/videos übermittelt, der Status abgefragt und MP4 heruntergeladen werden kann. Sie unterstützt Modelle wie Seedance, Veo, Wan usw., und das Wechseln des Modells erfordert nur die Änderung des Modellkennzeichens.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter Video-Generierungs-API: Ein codeorientierter Zugangsleitfaden - Aioga KI-News","description":"OpenRouter hat eine einheitliche asynchrone Video-Generierungs-API eingeführt, bei der Aufgaben über POST /api/v1/videos übermittelt, der Status abgefragt und MP4 heruntergeladen w...","url":"https://www.aioga.com/de/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:50:15.112Z"},"pt-BR":{"title":"API de Geração de Vídeo OpenRouter: Um Guia de Integração Prioritário para Código","summary":"OpenRouter lançou uma API unificada de geração de vídeo assíncrona, permitindo enviar tarefas, consultar o status e baixar MP4 via POST /api/v1/videos, suportando modelos como Seedance, Veo, Wan, etc., e mudar de modelo é tão simples quanto alterar o identificador do model.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"API de Geração de Vídeo OpenRouter: Um Guia de Integração Prioritário para Código - Aioga Notícias de IA","description":"OpenRouter lançou uma API unificada de geração de vídeo assíncrona, permitindo enviar tarefas, consultar o status e baixar MP4 via POST /api/v1/videos, suportando modelos como Seed...","url":"https://www.aioga.com/pt-BR/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:51:06.245Z"},"ru":{"title":"OpenRouter видео-генерация API: руководство по подключению с приоритетом кода","summary":"OpenRouter запустил унифицированный API для асинхронного создания видео, позволяя отправлять задачи через POST /api/v1/videos, опрашивать статус и скачивать MP4, поддерживает модели Seedance, Veo, Wan и другие, для смены модели достаточно изменить идентификатор model.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter видео-генерация API: руководство по подключению с приоритетом кода - Aioga Новости ИИ","description":"OpenRouter запустил унифицированный API для асинхронного создания видео, позволяя отправлять задачи через POST /api/v1/videos, опрашивать статус и скачивать MP4, поддерживает модел...","url":"https://www.aioga.com/ru/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:51:09.315Z"},"ar":{"title":"واجهة برمجة تطبيقات توليد الفيديو OpenRouter: دليل وصول يركز على الكود","summary":"أطلقت OpenRouter واجهة برمجة تطبيقات موحدة لتوليد الفيديوات غير المتزامنة، من خلال إرسال المهام عن طريق POST /api/v1/videos، والتحقق من الحالة وتنزيل ملفات MP4، وتدعم نماذج مثل Seedance وVeo وWan، وتغيير النموذج يتطلب فقط تغيير معرف model.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"واجهة برمجة تطبيقات توليد الفيديو OpenRouter: دليل وصول يركز على الكود - Aioga أخبار الذكاء الاصطناعي","description":"أطلقت OpenRouter واجهة برمجة تطبيقات موحدة لتوليد الفيديوات غير المتزامنة، من خلال إرسال المهام عن طريق POST /api/v1/videos، والتحقق من الحالة وتنزيل ملفات MP4، وتدعم نماذج مثل See...","url":"https://www.aioga.com/ar/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:52:07.656Z"},"hi":{"title":"OpenRouter वीडियो जनरेशन API: कोड-प्रमुख इंटीग्रेशन गाइड","summary":"OpenRouter ने एक统一 असिंक्रोनस वीडियो जनरेशन API लॉन्च किया है, जो कि POST /api/v1/videos के माध्यम से कार्य सबमिट करने, स्थिति पोल करने और MP4 डाउनलोड करने की सुविधा देता है, इसमें Seedance, Veo, Wan आदि मॉडल समर्थित हैं, मॉडल बदलने के लिए केवल model पहचानकर्ता बदलना पर्याप्त है।","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter वीडियो जनरेशन API: कोड-प्रमुख इंटीग्रेशन गाइड - Aioga AI समाचार","description":"OpenRouter ने एक统一 असिंक्रोनस वीडियो जनरेशन API लॉन्च किया है, जो कि POST /api/v1/videos के माध्यम से कार्य सबमिट करने, स्थिति पोल करने और MP4 डाउनलोड करने की सुविधा देता है, इसमें...","url":"https://www.aioga.com/hi/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:52:10.099Z"},"it":{"title":"OpenRouter Video Generation API: Una guida all'integrazione basata sul codice","summary":"OpenRouter ha lanciato un'API unificata per la generazione asincrona di video, consentendo di inviare compiti tramite POST /api/v1/videos, monitorare lo stato e scaricare MP4. Supporta modelli come Seedance, Veo e Wan, e per cambiare modello basta modificare l'identificatore del modello.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter Video Generation API: Una guida all'integrazione basata sul codice - Aioga Notizie IA","description":"OpenRouter ha lanciato un'API unificata per la generazione asincrona di video, consentendo di inviare compiti tramite POST /api/v1/videos, monitorare lo stato e scaricare MP4. Supp...","url":"https://www.aioga.com/it/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:53:05.312Z"},"nl":{"title":"OpenRouter video-generatie API: een code-gericht toegangsgids","summary":"OpenRouter lanceert een uniforme asynchrone video-generatie API. Taken kunnen worden ingediend via POST /api/v1/videos, de status kan worden gecontroleerd en MP4-bestanden kunnen worden gedownload. Het ondersteunt modellen zoals Seedance, Veo, Wan, en het wisselen van model vereist alleen het wijzigen van de modelidentificator.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter video-generatie API: een code-gericht toegangsgids - Aioga AI-nieuws","description":"OpenRouter lanceert een uniforme asynchrone video-generatie API. Taken kunnen worden ingediend via POST /api/v1/videos, de status kan worden gecontroleerd en MP4-bestanden kunnen w...","url":"https://www.aioga.com/nl/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:53:03.179Z"},"tr":{"title":"OpenRouter Video Oluşturma API'si: Kod Öncelikli Bir Erişim Kılavuzu","summary":"OpenRouter, POST /api/v1/videos ile görev gönderme, durum sorgulama ve MP4 indirme işlemlerini yapabileceğiniz birleşik bir asenkron video üretim API'si sunuyor; Seedance, Veo, Wan gibi modelleri destekliyor ve modeli değiştirmek için sadece model tanımlayıcısını değiştirmeniz yeterli.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter Video Oluşturma API'si: Kod Öncelikli Bir Erişim Kılavuzu - Aioga AI Haberleri","description":"OpenRouter, POST /api/v1/videos ile görev gönderme, durum sorgulama ve MP4 indirme işlemlerini yapabileceğiniz birleşik bir asenkron video üretim API'si sunuyor; Seedance, Veo, Wan...","url":"https://www.aioga.com/tr/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:54:03.146Z"},"vi":{"title":"OpenRouter Video Generation API: Hướng dẫn tiếp cận ưu tiên mã","summary":"OpenRouter ra mắt API tạo video bất đồng bộ thống nhất, thông qua POST /api/v1/videos gửi nhiệm vụ, kiểm tra trạng thái và tải xuống MP4, hỗ trợ các mô hình như Seedance, Veo, Wan, thay đổi mô hình chỉ cần thay đổi định danh model.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter Video Generation API: Hướng dẫn tiếp cận ưu tiên mã - Tin tức AI Aioga","description":"OpenRouter ra mắt API tạo video bất đồng bộ thống nhất, thông qua POST /api/v1/videos gửi nhiệm vụ, kiểm tra trạng thái và tải xuống MP4, hỗ trợ các mô hình như Seedance, Veo, Wan,...","url":"https://www.aioga.com/vi/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:54:02.870Z"},"id":{"title":"OpenRouter Video Generation API: Panduan Akses dengan Prioritas Kode","summary":"OpenRouter meluncurkan API generasi video asinkron yang terintegrasi, melalui POST /api/v1/videos untuk mengirim tugas, memeriksa status, dan mengunduh MP4, mendukung model seperti Seedance, Veo, Wan, dan lain-lain, mengganti model hanya perlu mengubah identifier model.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter Video Generation API: Panduan Akses dengan Prioritas Kode - Berita AI Aioga","description":"OpenRouter meluncurkan API generasi video asinkron yang terintegrasi, melalui POST /api/v1/videos untuk mengirim tugas, memeriksa status, dan mengunduh MP4, mendukung model seperti...","url":"https://www.aioga.com/id/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:54:58.336Z"},"th":{"title":"OpenRouter วิดีโอสร้าง API: คู่มือการเข้าถึงที่เน้นโค้ดเป็นหลัก","summary":"OpenRouter เปิดตัว API การสร้างวิดีโอแบบอะซิงโครนัสที่เป็นมาตรฐานเดียวกัน ผ่านการส่งงานด้วย POST /api/v1/videos ตรวจสอบสถานะและดาวน์โหลด MP4 รองรับโมเดลเช่น Seedance, Veo, Wan และอื่น ๆ การสลับโมเดลเพียงแค่เปลี่ยนตัวระบุ model","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter วิดีโอสร้าง API: คู่มือการเข้าถึงที่เน้นโค้ดเป็นหลัก - ข่าว AI Aioga","description":"OpenRouter เปิดตัว API การสร้างวิดีโอแบบอะซิงโครนัสที่เป็นมาตรฐานเดียวกัน ผ่านการส่งงานด้วย POST /api/v1/videos ตรวจสอบสถานะและดาวน์โหลด MP4 รองรับโมเดลเช่น Seedance, Veo, Wan และอ...","url":"https://www.aioga.com/th/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:55:06.887Z"},"pl":{"title":"OpenRouter API generowania wideo: przewodnik po podejściu najpierw kodowym","summary":"OpenRouter wprowadza zunifikowane asynchroniczne API do generowania wideo, umożliwiające przesyłanie zadań przez POST /api/v1/videos, sprawdzanie stanu i pobieranie MP4, wspierające modele takie jak Seedance, Veo, Wan itp. Zmiana modelu wymaga jedynie zmiany identyfikatora modelu.","category":"行业动态","source":"OpenRouter：Announcements（RSS）","aggregationSource":"OpenRouter：Announcements（RSS","pageTitle":"OpenRouter API generowania wideo: przewodnik po podejściu najpierw kodowym - Aioga Wiadomości AI","description":"OpenRouter wprowadza zunifikowane asynchroniczne API do generowania wideo, umożliwiające przesyłanie zadań przez POST /api/v1/videos, sprawdzanie stanu i pobieranie MP4, wspierając...","url":"https://www.aioga.com/pl/news/cmt8zzh0w05nirolyozmvq7i0/","contentTranslated":true,"sourceHash":"69ed6554163e197e","translatedAt":"2026-08-26T18:56:06.675Z"}},"evidenceTier":"verified-news","reviewStatus":"editorial-selected","indexable":true,"editorialCover":""}}