sora について
soraは、同梱CLIとOpenAI Python SDKを使ってSoraの動画生成ジョブを作成・管理するスキルです。生成、部分編集、延長、キャラクター参照、状態確認、ダウンロード、キューやBatch APIの手順に対応します。
主な機能
- 01動画ジョブの作成と編集
- 02生成動画の延長
- 03非人間キャラクター参照の作成
- 04ジョブ確認と素材のダウンロード
- 05ローカルキューまたはBatch APIの実行
- 06構造化プロンプトの補強
活用シーン
- 01プロンプトから動画クリップを生成
- 02完成動画の続編や部分変更を作成
- 03複数ショットで非人間キャラクターを再利用
- 04複数生成のキュー登録やオフラインバッチの計画
MCP 対応
このスキルは同梱CLIとOpenAI Python SDKを通じてSoraの動画生成機能を利用します。MCPサーバーまたはクライアントであるとは記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ openai/ skills --skill soraインストール後、Claude Code で/soraを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtagents/openai.yamlreferences/cinematic-shots.mdcli.mdcodex-network.mdprompting.mdsample-prompts.mdsocial-ads.mdtroubleshooting.mdvideo-api.mdscripts/sora.py詳細
Sora 動画生成スキル
現在のプロジェクト向けに、Sora の動画ジョブを作成または管理します(製品デモ、マーケティング動画、シネマティックなショット、ソーシャルメディア用クリップ、UI モックなど)。デフォルトでは sora-2 を使用し、構造化プロンプトを拡張します。また、実行結果を安定させるため、同梱の CLI を優先します。注:$sora はプロンプト内のスキルタグであり、シェルコマンドではありません。
使用するタイミング
- プロンプトから新しい動画クリップを生成する
- 短い非人間の参照クリップから、再利用可能なキャラクター参照を作成する
- 既存の生成済み動画を、対象を絞ったプロンプト変更で編集する
- 完成した動画を、続きのプロンプトで延長する
- ステータスを確認する、ジョブを一覧表示する、またはアセット(動画/サムネイル/スプライトシート)をダウンロードする
- ローカルのマルチジョブキューを今すぐ実行する、またはオフラインレンダリング用に正式な Batch API への送信を計画する
判断フロー
- 複数のショットで再利用したい短い非人間の参照クリップがある場合 →
create-character - 完成した動画の次の展開や続きを作りたい場合 →
extend - ショットを維持したまま、完成した動画に対象を絞った変更を加えたい場合 →
edit - 動画 ID があり、ステータスやアセットを確認したい場合 →
status、poll、またはdownload - Codex 内ですぐに多数のレンダリングが必要な場合 →
create-batch(ローカルでの並列実行であり、Batch API ではありません) - オフライン処理やスタジオのパイプライン向けに多数のレンダリングが必要な場合 →
references/video-api.mdに記載されている公式の Batch API フローを使用する - それ以外の場合 →
create(1 回の操作で利用可能なアセットが必要な場合はcreate-and-poll)
ワークフロー
- 目的を判断します:create、create-character、edit、extend、status/download、ローカルキュー、または公式の Batch API。
- 入力を集めます:プロンプト、モデル、サイズ、秒数、画像参照、およびキャラクター ID(該当する場合)。
- 長い構造化プロンプトを手作業で書く代わりに、CLI の拡張フラグ(
--use-case、--scene、--cameraなど)を優先します。すでに構造化プロンプトのファイルがある場合は、--no-augmentを渡します。 - 同梱の CLI(
scripts/sora.py)を、適切なデフォルト値で実行します。長いプロンプトには、シェルのエスケープ処理の問題を避けるため、--prompt-fileを優先します。 - 非同期ジョブの場合は、終端ステータスになるまでポーリングします(または
create-and-pollを使用します)。 - アセット(動画/サムネイル/スプライトシート)をダウンロードし、URL の有効期限が切れる前にローカルに保存します。
- 多数のショットで連続性を保ちたい場合は、先にキャラクターアセットを作成し、その後の
create呼び出しで参照します。 - 完成したショットを反復して調整したい場合は
editを優先し、時間的にショットの続きを作りたい場合はextendを優先します。 - 反復ごとに、対象を絞った変更を 1 つだけ行います。
認証
- ライブ API 呼び出しには、
OPENAI_API_KEYを設定する必要があります。
キーが設定されていない場合は、次の手順を案内してください。
- OpenAI のプラットフォーム UI で API キーを作成します:https://platform.openai.com/api-keys
OPENAI_API_KEYをシステムの環境変数として設定します。- 必要に応じて、使用している OS/シェルでの環境変数の設定方法を案内します。
- チャットにキー全体を貼り付けるよう、ユーザーに求めてはいけません。ローカルで設定してもらい、準備ができたら知らせてもらいます。
デフォルトとルール
- デフォルトのモデル:
sora-2(忠実度を高める場合はsora-2-proを使用します)。 - デフォルトのサイズ:
1280x720。 - デフォルトの秒数:
4(使用可能な値:"4"、"8"、"12"、"16"、"20")。 - サイズと秒数は必ず API パラメーターで指定してください。文章で指定しても変更されません。
1920x1080と1080x1920にはsora-2-proが必要です。- 1 回の生成につき、キャラクターは最大 2 体まで使用してください。
- OpenAI Python SDK(
openaiパッケージ)を使用してください。高レベルの SDK ヘルパーが最新の Sora ガイドに追いついていない場合は、単独の HTTP コードではなく、公式 SDK 内の低レベルのclient.post/get/deleteを使用してください。 - ライブ API を呼び出す前に、必ず
OPENAI_API_KEYを設定してください。 - uv のキャッシュ権限で問題が発生した場合は、
UV_CACHE_DIR=/tmp/uv-cacheを設定してください。 - 入力する参照画像は jpg/png/webp 形式で、出力目標のサイズに合わせてください。
- JSON の
input_referenceオブジェクトでは、file_idまたはimage_urlのいずれかを使用します。アップロードするファイルパスには multipart を使用してください。 - ダウンロード URL は約 1 時間で期限切れになります。アセットは独自のストレージにコピーしてください。
- バッチ生成された動画は、バッチ完了後最大 24 時間ダウンロードできます。
scripts/sora.pyのcreate-batchはローカルの並行キューであり、公式の Batch API ではありません。- 同梱の CLI を優先して使用し、ユーザーから依頼されない限り
scripts/sora.pyは絶対に変更しないでください。 - Sora は音声を生成できます。ユーザーがナレーション/音声を希望する場合は、
Audio:とDialogue:の行に明記し、短くまとめてください。
API の制限事項
- 使用できるモデルは
sora-2とsora-2-proに限られます。 - Sora モデルの API を利用するには、組織認証済みのアカウントが必要です。
- 動画の長さは
secondsパラメーターで指定する必要があり、現在は4、8、12、16、20に対応しています。 - キャラクターのアップロードには、
16:9または9:16、720p~1080pの短い2~4秒の非人間の MP4 が最適です。 - 1 回の延長で最大
20秒まで延長できます。1 本の元動画につき最大 6 回まで延長でき、合計の長さは最大120秒です。 - 延長では現在、キャラクターや画像参照を使用できません。
- このスキルでは、ID を指定して生成済み動画を編集できます。
- 公式の Batch API は現在
POST /v1/videosのみをサポートし、multipart アップロードではなく JSON ボディを使用します。 - 出力サイズはモデルによって制限されます(対応サイズは
references/video-api.mdを参照してください)。 - 動画の作成は非同期です。ダウンロードする前に、完了するまでポーリングする必要があります。
- レート制限は使用ティアによって異なります(具体的な制限は記載しないでください)。
- コンテンツ制限は API によって適用されます(以下のガードレールを参照してください)。
ガードレール(必ず適用)
- 18 歳未満の視聴者に適したコンテンツのみを使用してください。
- 著作権で保護されたキャラクターや音楽は使用しないでください。
- 実在の人物(著名人を含む)は使用しないでください。
- 人間の顔が写っている入力画像は拒否されます。
- このスキルでのキャラクターのアップロードは、非人間の対象のみを対象とします。
プロンプトの拡張
プロンプトを、制作向けの構造化された仕様に整形してください。暗黙の詳細を明示する場合に限り、新しい創作上の要件を追加しないでください。
テンプレート(該当する行のみ含める):
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>
拡張ルール:
- 簡潔にまとめ、ユーザーがすでに示した内容や別の箇所で提供した内容だけを追加してください。
- 編集の場合は、不変条件を明示的に列挙してください(「同じショットで、X のみを変更」)。
- キャラクターベースのショットでは、プロンプト内でキャラクター名をそのまま記載してください。
- 成功に不可欠な詳細が欠けている場合は質問してください。それ以外の場合は、そのまま進めてください。
- 構造化されたプロンプトファイルを CLI に渡す場合は、ツールによる再整形を避けるため
--no-augmentを追加してください。
例
生成例(単一ショット)
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
編集例(不変条件)
Primary request: same shot and framing, switch palette to teal/sand/rust with warmer backlight
Constraints: keep the subject and camera move unchanged
キャラクターの一貫性の例
Primary request: Mossy, a moss-covered teapot mascot, hurries through a lantern-lit market at dusk
Camera: cinematic tracking shot, 35mm, shoulder height
Lighting/mood: warm dusk practicals, soft haze
Constraints: keep Mossy’s silhouette and moss texture consistent across the shot
プロンプト作成のベストプラクティス(簡易リスト)
- 1 ショットにつき、主なアクションを 1 つ、カメラの動きを 1 つにします。
- タイミングは回数や拍で指定します(「2 歩、間を置く、振り返る」)。
- UI や画面上のテキストには、テキストを短くし、カメラを固定します。
- アーティファクト(ちらつき、揺れ、速い動き)が現れたら、避けたいことを短く追加します。
- プロンプトが短いほど創造性が高まり、長いほど制御しやすくなります。
- セリフは専用のブロックに記載し、4~8 秒のクリップでは短い台詞にします。
- アップロードしたキャラクター ID を使う場合は、キャラクター名をそのまま記載します。
- 編集時は不変条件を明示します(同じショット、同じカメラの動き)。
- 変更箇所を絞る場合は
editを、タイムラインの続きを作成する場合はextendを優先します。 - 連続性を保つため、1 回の追加指示につき変更は 1 つにします。
アセットの種類別ガイダンス
特定のアーティファクトをリクエストする場合は、以下のモジュールを使用します。用途に応じたテンプレートとデフォルト設定が用意されています。
- 映画風ショット:
references/cinematic-shots.md - ソーシャル広告:
references/social-ads.md
CLI と環境に関するメモ
- CLI コマンドと例:
references/cli.md - API パラメーターのクイックリファレンス:
references/video-api.md - プロンプト作成ガイダンス:
references/prompting.md - プロンプトのサンプル:
references/sample-prompts.md - トラブルシューティング:
references/troubleshooting.md - ネットワーク/サンドボックスのヒント:
references/codex-network.md
リファレンスマップ
references/cli.md:scripts/sora.pyを使った create/edit/extend/create-character/poll/download/local-queue の各フローの実行方法。references/video-api.md:API レベルの設定項目(モデル、サイズ、長さ、キャラクター、編集、拡張、公式 Batch API)。references/prompting.md:プロンプトの構成、キャラクターの一貫性、編集、拡張に関するガイダンス。references/sample-prompts.md:コピー&ペーストできるプロンプトのレシピ(例のみ。追加の理論はありません)。references/cinematic-shots.md:映画風ショットのテンプレート。references/social-ads.md:短いソーシャル広告の展開向けテンプレート。references/troubleshooting.md:よくあるエラーとその解決方法。references/codex-network.md:ネットワーク/承認に関するトラブルシューティング。
コメント
Markdown 対応