giggle-generation-drama について
giggle-generation-drama は、Giggle.pro API で AI 動画を生成するスキルです。ドラマ、ナレーション、ショートフィルムのモード選択を案内し、生成処理を実行してダウンロードリンクまたはエラーを返します。
主な機能
- 013 種類の動画生成モード
- 02ストーリー、アスペクト比、言語の指定
- 03長さ、スタイル、キャラクター画像の任意指定
- 04生成前のスタイル一覧表示
- 05タスク送信、支払い処理、状態確認
- 06ダウンロードリンクまたはエラーの返却
活用シーン
- 01ストーリーボード重視の短編ドラマ制作
- 02ナレーション中心の動画作成
- 03映画的なショートフィルムの生成
- 04選択したスタイルやキャラクター画像の適用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ giggle-official/ skills --skill giggle-generation-dramaインストール後、Claude Code で/giggle-generation-dramaを入力して読み込まれたか確認します。
同梱ファイルscripts/requirements.txtscripts/trustee_api.py
詳細
⚠️ インストール前にご確認ください
インストール前にご確認ください。 このスキルは以下を実行します。
- ネットワーク – 動画生成のために Giggle.pro API を呼び出します
必要なもの:python3、GIGGLE_API_KEY(システム環境変数)、pip パッケージ:requests
エラー時に再試行しないでください:スクリプトの実行中にエラーが発生した場合、再試行しないでください。エラーをユーザーに直接報告して停止してください。
初回使用前に必要な設定
認証エラーによるワークフローの失敗を防ぐため、操作を実行する前に、ユーザーが API キーを設定済みであることを確認してください。
- API キー:Giggle.pro にログインします。メインサイトで、左サイドバーを開き、API Key(API 密钥)に移動します。そこでキーを作成またはコピーしてください。あいまいな「アカウント設定」だけに頼らないでください。サイドバーの API Key ブロックが、指定された入口です。
- 設定:システム環境変数
GIGGLE_API_KEYを設定しますexport GIGGLE_API_KEY=your_api_key
確認手順:
- ユーザーがシステム環境に
GIGGLE_API_KEYを設定済みであることを確認します。 - 未設定の場合は、ユーザーに次の手順を案内してください。
ログインした状態で giggle.pro を開く → 左サイドバー → API Key / API 密钥 → キーを作成またはコピーし、ターミナルで
export GIGGLE_API_KEY=your_api_keyを実行してください。 - ワークフローを続行する前に、ユーザーが設定するのを待ちます。
生成モード
3 つのモードに対応しています。ワークフローを開始する前に、ユーザーにモードを選択してもらってください。指定がない場合は、デフォルトの Episodes モード(director)を使用します。
| モード | project_type | 説明 |
|---|---|---|
| Episodes | director | ストーリーボードとショット言語を用いた、AI が演出するショートドラマ |
| Narration | narration | ナレーションを中心とした動画 |
| Short Film | short-film | ストーリーと映像のバランスが取れた、シネマティックな短編映画 |
メインワークフロー:execute_workflow
execute_workflow を使って、送信 + ポーリング + 自動支払い(必要な場合)+ 完了待ちの全ワークフローを実行します。一度呼び出したら、戻り値が返るまで待ちます。
関数内部の処理(動作イメージ):タスクを送信 → 約 3 秒ごとにポーリング → 支払い待ちを検出して必要に応じて自動支払い → 完了を待機(最大約 1 時間)→ 動画のダウンロードリンクまたはエラーを返します。
継続的な進捗更新(ブロッキングワークフロー)
execute_workflow はブロッキング処理です。送信、必要に応じた支払い、ポーリング(約 3 秒ごと)はすべて Python 呼び出しの内部で実行されます(最大約 1 時間)。各ポーリングの間にチャットでメッセージを送信することはできません。
-
呼び出し前に、ショートドラマ/ナレーション/短編映画の制作処理が進行中で、通常は数分から数十分かかること、また、関数から戻り次第すぐにメッセージを送るため、ユーザーから事前に連絡する必要はないことをユーザーに伝えます。
-
ユーザーから「進捗は?」と尋ねられるのを待たずに、呼び出しを開始し、現在実行中のステップを示しながら、10 秒ごとに現在の進捗をユーザーに積極的に伝えます。
-
呼び出しから戻った後、成功時は署名付き動画 URL の完全なリンクを、失敗時は明確なエラーを直ちに伝えます。API で
project_idを取得できる場合は、失敗またはタイムアウト時に、ユーザーが後続の操作や再試行に使用できるよう、この情報も伝えます。 -
ノンブロッキングの方法(
create_and_submitのみ):ユーザーが希望する場合は、送信して ID を返し、ユーザーから問い合わせがあった場合にのみその ID を照会できます。
関数シグネチャ
execute_workflow(
diy_story: str, # Story/script content (required)
aspect: str, # Aspect ratio: 16:9 or 9:16 (required)
project_name: str, # Project name (required)
language: str, # zh or en (required)—see "Language" below
video_duration: str = "auto", # Duration, default "auto" (optional)
style_id: Optional[int] = None, # Style ID (optional)
project_type: str = "director", # Mode, default "director" (optional)
character_info: Optional[List[Dict]] = None # Character images (optional)
)
言語(language、必須)
zh または en を指定します。ユーザーのストーリー/プロンプトと現在の対話で主に使われている言語に基づいて設定してください。
- ユーザーがストーリーを主に中国語で書く、または口述する(あるいはユーザーとの会話が主に中国語で行われている)場合 →
language="zh"。 - ユーザーがストーリーを主に英語で書く、または口述する(あるいは会話が主に英語で行われている)場合 →
language="en"。 - ストーリーが混在している場合:スクリプト本文の大部分を占める言語を選びます。均等に混在している場合は、ユーザーが直近の明示的な指示で使用した言語を優先します。
この値は生成言語として Giggle API に渡されます。省略したり、内容に合致しない値を推測して指定したりしてはいけません。
パラメーターの説明
| パラメーター | 必須 | 説明 |
|---|---|---|
| diy_story | はい | ストーリーまたはスクリプトの内容 |
| aspect | はい | アスペクト比:16:9 または 9:16 |
| project_name | はい | プロジェクト名 |
| language | はい | zh(中国語)または en(英語)。ストーリー/対話に合わせます(上記を参照) |
| video_duration | いいえ | auto、30、60、120、180、240、300。デフォルトは "auto" |
| style_id | いいえ | スタイル ID。指定されていない場合は省略 |
| project_type | いいえ | director/narration/short-film。デフォルトは "director" |
| character_info | いいえ | キャラクター画像のリスト:[{"name": "Character name", "url": "Image URL"}, ...] |
使用手順
-
生成モードを紹介して選択してもらう(必須):生成する前に、3 つのモードを必ず紹介し、ユーザーに選んでもらいます。以下を表示してください。
動画生成には 3 つのモードがあります。選択してください:
エピソード(director):AI ディレクターが絵コンテとショット表現を担当します。会話やプロットのある短編ドラマに適しています。
ナレーション(narration):映像をナレーション中心に構成します。知識の共有、ニュース解説、製品紹介に適しています。
ショートフィルム(short-film):ストーリーと映像のバランスを取り、映画的なショットとテンポで構成します。感情に訴える短編、創作ストーリー、芸術的な表現に適しています。
明示的に選択されるまで待ってから続行してください。指定がない場合は、エピソードをデフォルトとして使用します。
-
ユーザーがスタイルを選びたい場合:
get_styles()を呼び出してスタイル一覧を取得し、ID、名前、カテゴリー、説明を表示します。選択されるまで待ってから続行してください。 -
ユーザーがキャラクター画像の URL を指定した場合:各キャラクターの
nameとurlを含むcharacter_info配列を作成します。 -
ストーリーと進行中の対話に基づき、言語のセクションに従って
language(zh/en)を設定します。execute_workflowの実行前に必ず設定してください。 -
ワークフローを実行する:
execute_workflow()を呼び出す前に、上記の継続的な進捗報告に従い、簡潔な開始メッセージと現実的な所要時間の見積もりを伝えます。処理が戻り次第、すぐに報告してください。- ストーリー、アスペクト比、プロジェクト名、および
languageを指定してexecute_workflow()を呼び出します。 - 選択されたモードに応じて
project_typeを設定します。video_durationが指定されている場合はその値を、指定されていない場合は"auto"を渡します。選択されている場合はstyle_idを、指定されている場合はcharacter_infoを渡します。 - 1 回だけ呼び出して、完了するまで待ちます。関数が作成、送信、ポーリング、支払い、完了処理を行い、ダウンロードリンクまたはエラーを返します。戻り次第、成功(署名付き URL 全体)または失敗を直ちにユーザーに伝えてください。
例
スタイル一覧を表示:
api = TrusteeModeAPI()
styles_result = api.get_styles()
# Display style list to user
基本的なワークフロー(長さ指定なし、スタイル指定なし):
api = TrusteeModeAPI()
result = api.execute_workflow(
diy_story="An adventure story...",
aspect="16:9",
project_name="My Video Project",
language="en",
)
# result contains download URL or error
長さを指定、スタイル指定なし:
result = api.execute_workflow(
diy_story="An adventure story...",
aspect="16:9",
project_name="My Video Project",
language="en",
video_duration="60"
)
長さとスタイルを指定:
result = api.execute_workflow(
diy_story="An adventure story...",
aspect="16:9",
project_name="My Video Project",
language="en",
video_duration="60",
style_id=142
)
ナレーションモード:
result = api.execute_workflow(
diy_story="Today we'll talk about AI development...",
aspect="16:9",
project_name="Narration Video",
language="en",
project_type="narration"
)
ショートフィルムモード:
result = api.execute_workflow(
diy_story="Sunset. An old fisherman rows home alone. The sea glows red...",
aspect="16:9",
project_name="Short Film",
language="en",
project_type="short-film"
)
キャラクター画像を指定(ユーザーがキャラクター画像の URL を指定した場合):
result = api.execute_workflow(
diy_story="Xiao Ming and Xiao Hong meet in the park, they smile at each other...",
aspect="16:9",
project_name="Custom Character Video",
language="zh",
character_info=[
{"name": "Xiao Ming", "url": "https://xxx/xiaoming.jpg"},
{"name": "Xiao Hong", "url": "https://xxx/xiaohong.jpg"}
]
)
戻り値
関数は、タスクが完了(成功または失敗)するか、タイムアウト(1 時間)するまで処理をブロックします。戻るまで待ってください。
成功(ダウンロードリンクを含む):
{
"code": 200,
"msg": "success",
"uuid": "...",
"data": {
"project_id": "...",
"video_asset": {...},
"status": "completed"
}
}
ユーザーには署名付き URL 全体(data.video_asset.download_url)を返します。例:
https://assets.giggle.pro/private/ai_director/348e4956c7bd4f763b/qzjc7gwkpf.mp4?Policy=...&Key-Pair-Id=...&Signature=...&response-content-disposition=attachment
download_url から response-content-disposition=attachment やその他のクエリパラメーターを削除しないでください。次のようなクエリパラメーターのない署名なし URL を返してはいけません。
https://assets.giggle.pro/private/ai_director/348e4956c7bd4f763b/qzjc7gwkpf.mp4
失敗:
{
"code": -1,
"msg": "Error message",
"data": null
}