S

sora

by @openaiv
4.2(31)

为当前项目创建或管理短视频片段,如产品演示、营销广告、电影镜头和UI模型,支持Sora-2模型,简化视频制作。

openai-soravideo-generationgenerative-aitext-to-videoai-modelsGitHub
安装方式
npx skills add openai/skills --skill sora
compare_arrows

Before / After 效果对比

1
使用前

制作短视频需要专业的视频编辑软件和技能,耗费大量时间和人力进行拍摄、剪辑和后期制作,创意实现受限于技术能力。

使用后

利用Sora视频生成技能,通过简单的文本提示即可快速生成高质量的短视频片段,无论是产品演示、营销广告还是UI模拟,都能高效实现创意,大幅降低视频制作门槛。

SKILL.md

sora

Sora Video Generation Skill

Creates or manages short video clips for the current project (product demos, marketing spots, cinematic shots, UI mocks). Defaults to sora-2 and a structured prompt augmentation workflow, and prefers the bundled CLI for deterministic runs. Note: $sora is a skill tag in prompts, not a shell command.

When to use

  • Generate a new video clip from a prompt

  • Remix an existing video by ID

  • Poll status, list jobs, or download assets (video/thumbnail/spritesheet)

  • Batch runs (many prompts or variants)

Decision tree (create vs remix vs status/download vs batch)

  • If the user has a video id and wants a change → remix

  • If the user has a video id and wants status or assets → status/poll/download

  • If the user needs many prompts/assets → create-batch

  • If the user asks for two versions with a small change (same shot, different subject/detail) → create the base, then remix for the variation

  • Otherwise → create (or create-and-poll if they need a ready asset in one step)

Workflow

  • Decide intent: create vs remix vs status/download vs batch.

  • Collect inputs: prompt, model, size, seconds, and any input reference image.

  • If batch: write a temporary JSONL under tmp/ (one job per line), run once, then delete the JSONL.

  • Prefer CLI augmentation flags (--use-case, --scene, --camera, etc.) instead of pre-writing a structured prompt. If you already produced a structured prompt file, pass --no-augment to avoid double-wrapping.

  • Run the bundled CLI (scripts/sora.py) with sensible defaults (see references/cli.md). For long prompts, prefer --prompt-file to avoid shell-escaping issues; pair with --no-augment if the prompt is already structured.

  • For async jobs, poll until complete (or use create-and-poll).

  • Download assets (video/thumbnail/spritesheet) and save locally.

  • Remove intermediate files created during invocation (for example prompt.txt, remix_job.json, temp JSONL). If the sandbox blocks rm, skip cleanup or truncate the files without surfacing an error.

  • Iterate with a single targeted change per prompt.

Authentication

  • OPENAI_API_KEY must be set for live API calls.

If the key is missing, give the user these steps:

  • Create an API key in the OpenAI platform UI: https://platform.openai.com/api-keys

  • Set OPENAI_API_KEY as an environment variable in their system.

  • Offer to guide them through setting the environment variable for their OS/shell if needed.

  • Never ask the user to paste the full key in chat. Ask them to set it locally and confirm when ready.

Defaults & rules

  • Default model: sora-2 (use sora-2-pro for higher fidelity).

  • Default size: 1280x720.

  • Default seconds: 4 (allowed: "4", "8", "12" as strings).

  • Always set size and seconds via API params; prose will not change them.

  • Use the OpenAI Python SDK (openai package); do not use raw HTTP.

  • Require OPENAI_API_KEY before any live API call.

  • If uv cache permissions fail, set UV_CACHE_DIR=/tmp/uv-cache.

  • Input reference images must be jpg/png/webp and should match target size.

  • Download URLs expire after about 1 hour; copy assets to your own storage.

  • Prefer the bundled CLI and never modify scripts/sora.py unless the user asks.

  • Sora can generate audio; if a user requests voiceover/audio, specify it explicitly in the Audio: and Dialogue: lines and keep it short.

API limitations

  • Models are limited to sora-2 and sora-2-pro.

  • API access to Sora models requires an organization-verified account.

  • Duration is limited to 4/8/12 seconds and must be set via the seconds parameter.

  • The API expects seconds as a string enum ("4", "8", "12").

  • Output sizes are limited by model (see references/video-api.md for the supported sizes).

  • Video creation is async; you must poll for completion before downloading.

  • Rate limits apply by usage tier (do not list specific limits).

  • Content restrictions are enforced by the API (see Guardrails below).

Guardrails (must enforce)

  • Only content suitable for audiences under 18.

  • No copyrighted characters or copyrighted music.

  • No real people (including public figures).

  • Input images with human faces are rejected.

Prompt augmentation

Reformat prompts into a structured, production-oriented spec. Only make implicit details explicit; do not invent new creative requirements.

Template (include only relevant lines):

Use case: <where the clip will be used>
Primary request: <user's main prompt>
Scene/background: <location, time of day, atmosphere>
Subject: <main subject>
Action: <single clear action>
Camera: <shot type, angle, motion>
Lighting/mood: <lighting + mood>
Color palette: <3-5 color anchors>
Style/format: <film/animation/format cues>
Timing/beats: <counts or beats>
Audio: <ambient cue / music / voiceover if requested>
Text (verbatim): "<exact text>"
Dialogue:
<dialogue>
- Speaker: "Short line."
</dialogue>
Constraints: <must keep/must avoid>
Avoid: <negative constraints>

Augmentation rules:

  • Keep it short; add only details the user already implied or provided elsewhere.

  • For remixes, explicitly list invariants ("same shot, change only X").

  • If any critical detail is missing and blocks success, ask a question; otherwise proceed.

  • If you pass a structured prompt file to the CLI, add --no-augment to avoid the tool re-wrapping it.

Examples

Generation example (single shot)

Use case: product teaser
Primary request: a close-up of a matte black camera on a pedestal
Action: slow 30-degree orbit over 4 seconds
Camera: 85mm, shallow depth of field, gentle handheld drift
Lighting/mood: soft key light, subtle rim, premium studio feel
Constraints: no logos, no text

Remix example (invariants)

Primary request: same shot and framing, switch palette to teal/sand/rust with warmer backlight
Constraints: keep the subject and camera move unchanged

Prompting best practices (short list)

  • One main action + one camera move per shot.

  • Use counts or beats for timing ("two steps, pause, turn").

  • Keep text short and the camera locked-off for UI or on-screen text.

  • Add a brief avoid line when artifacts appear (flicker, jitter, fast motion).

  • Shorter prompts are more creative; longer prompts are more controlled.

  • Put dialogue in a dedicated block; keep lines short for 4-8s clips.

  • State invariants explicitly for remixes (same shot, same camera move).

  • Iterate with single-change follow-ups to preserve continuity.

Guidance by asset type

Use these modules when the request is for a specific artifact. They provide targeted templates and defaults.

  • Cinematic shots: references/cinematic-shots.md

  • Social ads: references/social-ads.md

CLI + environment notes

  • CLI commands + examples: references/cli.md

  • API parameter quick reference: references/video-api.md

  • Prompting guidance: references/prompting.md

  • Sample prompts: references/sample-prompts.md

  • Troubleshooting: references/troubleshooting.md

  • Network/sandbox tips: references/codex-network.md

Reference map

  • references/cli.md: how to run create/poll/remix/download/batch via scripts/sora.py.

  • references/video-api.md: API-level knobs (models, sizes, duration, variants, status).

  • references/prompting.md: prompt structure and iteration guidance.

  • references/sample-prompts.md: copy/paste prompt recipes (examples only; no extra theory).

  • references/cinematic-shots.md: templates for filmic shots.

  • references/social-ads.md: templates for short social ad beats.

  • references/troubleshooting.md: common errors and fixes.

  • references/codex-network.md: network/approval troubleshooting.

Weekly Installs340Repositoryopenai/skillsGitHub Stars14.5KFirst SeenJan 28, 2026Security AuditsGen Agent Trust HubFailSocketPassSnykPassInstalled oncodex301opencode291gemini-cli277github-copilot271cursor262kimi-cli254

用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量901
评分4.2 / 5.0
版本
更新日期2026年5月19日
对比案例1 组

用户评分

4.2(31)
5
42%
4
45%
3
13%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

时间线

创建2026年3月17日
最后更新2026年5月19日