用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/qq5855144/GitHubM --skill sora-video-generation命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | sora-video-generation |
| description | Sora 2 视频生成(高级版),支持文生视频、图生视频、视频 Remix,含任务查询;适合需要 AI 视频创作、参考图驱动生成或对已有视频进行局部编辑的场景。 |
| license | MIT |
基于 Azure OpenAI Sora 2 模型的高质量视频生成服务,提供四个核心接口:
| 接口 | 方法 | 说明 |
|---|---|---|
| Create Video | POST | 文生视频 / 图生视频(可选参考图 input_reference) |
| Video from Reference | POST | 以参考图像为首帧锚点生成视频(强制匹配分辨率) |
| Remix Video | POST | 对已完成视频做局部修改,保留原始结构 |
| Query Status | POST | 查询任务进度,获取 video_url |
支持分辨率: 720x1280(竖屏)、1280x720(横屏)
支持时长: 4 / 8 / 12 秒
内容限制: 仅限 18 岁以下适龄内容,不得包含版权角色/真实人物/背景音乐版权内容
典型工作流:
video_idstatus === "completed"video_url 下载视频并转存至 Supabase Storage平台差异:
| 项 | Web | MiniProgram |
|---|---|---|
| 视频展示 | <video src={publicUrl}> | <Video src={publicUrl}> (Taro) |
| 文件上传(参考图) | FormData + File | Taro.chooseImage → uploadFile |
| Edge Function 调用 | fetch 或 supabase.functions.invoke | supabase.functions.invoke |
适用于 Agent 在代码生成阶段直接发起 HTTP 请求,无需 Edge Function 中转。
详见 references/sora-video-generation-api.md 中的"生成期代码"章节。
完整异步轮询模式:
const apiKey = process.env["INTEGRATIONS_API_KEY"]!; // platform_managed,密钥由平台注入
// 1. 发起视频生成任务(文生视频示例)
async function createVideo(
prompt: string,
size: "720x1280" | "1280x720" = "720x1280",
seconds: 4 | 8 | 12 = 8,
): Promise<string> {
const form = new FormData();
form.append("model", "sora-2");
form.append("prompt", prompt);
form.append("size", size);
form.append("seconds", String(seconds));
const res = await fetch(
"https://app-bo4w33bsdqm9-api-Xa6Jew6JjAqa-gateway.appmiaoda.com/openai/v1/videos",
{
method: "POST",
headers: { "X-Gateway-Authorization": `Bearer ${apiKey}` },
body: form,
},
);
if (!res.ok) throw new Error();
json = res.();
json. ;
}
(): <{
: ;
: ;
?: ;
}> {
res = (
,
{
: ,
: {
: ,
: ,
},
: .({ : videoId }),
},
);
(!res.) ();
res.();
}
(): <> {
videoId = (prompt);
= ;
= * * ;
deadline = .() + ;
(.() < deadline) {
( (r, ));
result = (videoId);
(result. === ) {
(!result.) ();
result.;
}
(result. === ) {
();
}
(result. === ) {
();
}
.();
}
();
}
生成期文件下载(必须执行):
生成接口返回的 video_url 是 CDN 临时链接,在生成期(Agent 直接调用场景)获得 URL 后,必须立即使用 Bash 工具将文件下载到本地,以便用户查看结果。
curl -L -o <本地路径> "<video_url>"
完整生成期工作流(含下载步骤):
video_urlcurl -L -o <本地路径> "<url>" 将文件下载到本地注意:上游 CDN 链接有时效性,应在获得 URL 后立即下载,不要延迟。
应用内调用需通过 Supabase Edge Function 中转,平台密钥 INTEGRATIONS_API_KEY 仅在服务端可见。
生成完成后视频 URL 转存至 Supabase Storage,向客户端返回持久化的 publicUrl。
各接口完整实现详见:
references/sora-video-generation-api.md
前端调用摘要(Web):
// 发起视频生成,获取 video_id
const { data, error } = await supabase.functions.invoke("sora-create-video", {
body: { prompt: "A cat riding a motorcycle at night", size: "1280x720", seconds: 8 },
});
if (error) throw error;
const videoId = data.videoId;
// 轮询状态
const POLL_INTERVAL_MS = 8000;
while (true) {
await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));
const { data: statusData } = await supabase.functions.invoke("sora-query-video", {
body: { video_id: videoId },
});
if (statusData.status === "completed") {
setVideoUrl(statusData.publicUrl); // Supabase Storage URL
break;
}
if (statusData.status === "failed") throw new Error("Video generation failed");
(statusData. === ) ();
(statusData.);
}
前端调用摘要(MiniProgram/Taro):
// 同 Web,supabase.functions.invoke 在 Taro 中可用
// 视频展示使用 Taro <Video> 组件
import { Video } from "@tarojs/components";
<Video src={videoUrl} controls autoPlay={false} />
详细的 Edge Function 代码(含 Supabase Storage 转存)、参考图上传(图生视频)、
Remix 接口用法见 references/sora-video-generation-api.md。
高级图片生成与编辑,支持文生图、图生图、多图合成,异步任务轮询。需要 AI 生成图片、对图片做内容编辑或风格转换时优先使用该工具。
基于 SOC 职业分类