简体中文 | English
Please review before installing. This skill will:
Requirements: python3, GIGGLE_API_KEY (system environment variable), pip packages: requests
> No Retry on Error: If script execution encounters an error, do not retry. Report the error to the user directly and stop.
Before performing any operation, confirm the user has configured the API Key to avoid workflow failure due to auth errors.
GIGGLE_API_KEYexport GIGGLE_API_KEY=your_api_keyVerification steps:
GIGGLE_API_KEY in system environment. > Hello! Before using the video generation feature, you need to configure the API Key. Please go to Giggle.pro to get your API Key, then run export GIGGLE_API_KEY=your_api_key in the terminal.
Supports three modes. Ask the user to select a mode before starting the workflow. If not specified, default to Episodes mode (director).
| Mode | project_type | Description |
|---|---|---|
| ------ | -------------- | ------------- |
| Episodes | director | AI-directed short drama with storyboards and shot language |
| Narration | narration | Narration-focused video |
| Short Film | short-film | Story and visuals balanced; cinematic short film |
Use execute_workflow to run the full workflow: submit + poll + auto-pay (if needed) + wait for completion. Call once and wait for return.
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)
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)
)
| Parameter | Required | Description |
|---|---|---|
| ----------- | ---------- | ------------- |
| diy_story | yes | Story or script content |
| aspect | yes | Aspect ratio: 16:9 or 9:16 |
| project_name | yes | Project name |
| video_duration | no | auto, 30, 60, 120, 180, 240, 300; default "auto" |
| style_id | no | Style ID; omit if not specified |
| project_type | no | director / narration / short-film; default "director" |
| character_info | no | Character image list: [{"name": "Character name", "url": "Image URL"}, ...] |
> We support three video generation modes. Please choose:
>
> Episodes (director): AI director handles storyboards and shot language. Good for short drama with dialogue and plot.
>
> Narration (narration): Narration-focused with visuals. Good for knowledge sharing, news commentary, product introductions.
>
> Short Film (short-film): Story and visuals balanced; cinematic shots and pacing. Good for emotional shorts, creative stories, artistic expression.
Wait for explicit user choice before continuing. If not specified, default to Episodes.
get_styles() for the style list; show ID, name, category, description; wait for choice before continuing.character_info array with name and url per character.execute_workflow() with story, aspect ratio, project name.project_type per chosen mode; pass video_duration if specified (else "auto"); pass style_id if chosen; pass character_info if provided.View style list:
api = TrusteeModeAPI()
styles_result = api.get_styles()
# Display style list to user
Basic workflow (no duration, no style):
api = TrusteeModeAPI()
result = api.execute_workflow(
diy_story="An adventure story...",
aspect="16:9",
project_name="My Video Project"
)
# result contains download URL or error
Specify duration, no style:
result = api.execute_workflow(
diy_story="An adventure story...",
aspect="16:9",
project_name="My Video Project",
video_duration="60"
)
Specify duration and style:
result = api.execute_workflow(
diy_story="An adventure story...",
aspect="16:9",
project_name="My Video Project",
video_duration="60",
style_id=142
)
Narration mode:
result = api.execute_workflow(
diy_story="Today we'll talk about AI development...",
aspect="16:9",
project_name="Narration Video",
project_type="narration"
)
Short film mode:
result = api.execute_workflow(
diy_story="Sunset. An old fisherman rows home alone. The sea glows red...",
aspect="16:9",
project_name="Short Film",
project_type="short-film"
)
With character images (when user provides character image URLs):
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",
character_info=[
{"name": "Xiao Ming", "url": "https://xxx/xiaoming.jpg"},
{"name": "Xiao Hong", "url": "https://xxx/xiaohong.jpg"}
]
)
The function blocks until the task completes (success or failure) or times out (1 hour). Wait for it to return.
Success (includes download link):
{
"code": 200,
"msg": "success",
"uuid": "...",
"data": {
"project_id": "...",
"video_asset": {...},
"status": "completed"
}
}
Return the full signed URL to the user (data.video_asset.download_url), e.g.:
https://assets.giggle.pro/private/ai_director/348e4956c7bd4f763b/qzjc7gwkpf.mp4?Policy=...&Key-Pair-Id=...&Signature=...&response-content-disposition=attachment
Do not return unsigned URLs without query params, e.g.:
https://assets.giggle.pro/private/ai_director/348e4956c7bd4f763b/qzjc7gwkpf.mp4
Failure:
{
"code": -1,
"msg": "Error message",
"data": null
}
共 2 个版本