← 返回 Skills 市场
patches429

Giggle Generation Aimv

作者 Parker · GitHub ↗ · v0.0.10 · MIT-0
cross-platform ✓ 安全检测通过
257
总下载
0
收藏
0
当前安装
2
版本数
在 OpenClaw 中安装
/install giggle-generation-aimv
功能描述
Use when the user wants to create AI music videos (MV)—including generating music from text prompts or using custom lyrics. Triggers: generate MV, music vide...
使用说明 (SKILL.md)

简体中文 | English

MV Trustee Mode API Skill

Calls the MV trustee mode API to run the full MV generation workflow. Project creation and task submission are merged into one step in the script—call execute_workflow once only; never call create and submit separately.

⚠️ Review Before Installing

Please review before installing. This skill will:

  1. Network – Calls Giggle.pro API for MV generation

Requirements: python3 (>=3.6), 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.


Required Setup Before First Use

Before performing any operation, confirm the user has configured the API Key.

API Key: Log in to Giggle.pro and obtain the API Key from account settings.

Configuration: Set system environment variable GIGGLE_API_KEY

  • export GIGGLE_API_KEY=your_api_key

Verification steps:

  1. Confirm the user has configured GIGGLE_API_KEY in system environment
  2. If not configured, guide the user:

    Hello! Before using the MV 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.

  3. Wait for the user to configure before continuing the workflow

Two Music Generation Modes

Mode music_generate_type Required params Description
Prompt prompt prompt, vocal_gender Describe music in text
Custom custom lyrics, style, title Provide lyrics, style, and title

Shared Parameters (All Modes, Required)

  • reference_image or reference_image_url: Reference image—provide at least one (asset_id or download URL). Also supports base64 image, e.g. "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==". For base64: pass the raw Base64 string directly; do not add the data:image/xxx;base64 prefix.
  • aspect: Aspect ratio, 16:9 or 9:16
  • scene_description: Visual scene description, default empty—only set when the user explicitly mentions the scene (max 200 chars)
  • subtitle_enabled: Enable subtitles, default false

Mode-Specific Parameters

Prompt mode:

  • prompt: Music description (required)
  • vocal_gender: Vocal gender — male / female / auto (optional, default auto)
  • instrumental: Instrumental only (optional, default false)

Custom mode:

  • lyrics: Lyrics content (required)
  • style: Music style (required)
  • title: Song title (required)

Workflow Function

Use execute_workflow to run the full workflow—call once and wait. Internally: create project + submit task (merged) → poll progress (every 3 sec) → detect and pay pending items → wait for completion (max 1 hour).

Important:

  • Never call create_project and submit_mv_task separately—always use execute_workflow or create_and_submit
  • After calling, just wait for the function to return; all intermediate steps are automatic

Function Signature

execute_workflow(
    music_generate_type: str,      # Mode: prompt / custom
    aspect: str,                    # Aspect ratio: 16:9 or 9:16
    project_name: str,              # Project name
    reference_image: str = "",      # Reference image asset_id (mutually exclusive with reference_image_url)
    reference_image_url: str = "",  # Reference image URL or base64 (mutually exclusive with reference_image)
    scene_description: str = "",    # Scene description, default empty
    subtitle_enabled: bool = False, # Subtitle toggle, default False
    # Prompt mode
    prompt: str = "",
    vocal_gender: str = "auto",
    instrumental: bool = False,
    # Custom mode
    lyrics: str = "",
    style: str = "",
    title: str = "",
)

Parameter Extraction Rules

  1. reference_image and reference_image_url: At least one required. Use reference_image for asset_id; use reference_image_url for image URL or base64.
  2. scene_description: Default empty—only fill when the user explicitly mentions "scene", "visual description", or "visual style".
  3. subtitle_enabled: Default False—only set True when the user explicitly requests subtitles.
  4. aspect: Use 9:16 when the user mentions portrait/vertical/9:16; otherwise default 16:9.
  5. Mode selection: "Describe music / use prompt" → prompt; "Here are my lyrics / lyrics are" → custom;

Examples

Prompt mode:

api = MVTrusteeAPI()
result = api.execute_workflow(
    music_generate_type="prompt",
    aspect="16:9",
    project_name="My MV",
    reference_image_url="https://example.com/ref.jpg",
    prompt="Upbeat pop, sunny beach vibe",
    vocal_gender="female"
)

Custom mode (user provides lyrics):

result = api.execute_workflow(
    music_generate_type="custom",
    aspect="9:16",
    project_name="Lyrics MV",
    reference_image="asset_xxx",
    lyrics="Verse 1: Spring breeze on my face...",
    style="pop",
    title="Spring Song"
)

With scene description (when user explicitly describes the scene):

result = api.execute_workflow(
    music_generate_type="prompt",
    aspect="16:9",
    project_name="Scene MV",
    reference_image_url="https://...",
    prompt="Electronic dance music",
    scene_description="City nightscape, neon lights, flowing traffic"
)

Submit Task API Request Example (Prompt Mode)

Submit endpoint (/api/v1/trustee_mode/mv/submit) request body:

{
  "project_id": "\x3Cyour-project-id>",
  "music_generate_type": "prompt",
  "prompt": "A cheerful pop song",
  "vocal_gender": "female",
  "instrumental": false,
  "reference_image_url": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMTEhUT...(base64 image data)",
  "scene_description": "A romantic beach walk at sunset, waves gently lapping the shore, pink sky gradient",
  "aspect": "16:9",
  "subtitle_enabled": false
}

Note: reference_image (asset_id) and reference_image_url (URL or base64) are mutually exclusive.

Custom mode:

{
  "project_id": "\x3Cyour-project-id>",
  "music_generate_type": "custom",
  "lyrics": "Verse 1:\
Standing by the sea watching the sunset\
Memories rush in like waves\
\
Chorus:\
Let the sea breeze blow away all worries\
In this golden moment\
We found each other\
",
  "style": "pop ballad",
  "title": "Seaside Memories",
  "reference_image": "\x3Casset_id>",
  "scene_description": "A couple walking on the beach at dusk, long shadows, orange-red sky gradient",
  "aspect": "9:16",
  "subtitle_enabled": false
}

Query Progress API Response Example

Query endpoint (/api/v1/trustee_mode/mv/query) response (all steps completed):

{
  "code": 200,
  "msg": "success",
  "uuid": "\x3Cresponse-uuid>",
  "data": {
    "project_id": "\x3Cyour-project-id>",
    "video_asset": {
      "asset_id": "\x3Casset_id>",
      "download_url": "https://assets.giggle.pro/private/...",
      "thumbnail_url": "https://assets.giggle.pro/private/...",
      "signed_url": "https://assets.giggle.pro/private/...",
      "duration": 0
    },
    "shot_count": 0,
    "current_step": "editor",
    "completed_steps": "music-generate,storyboard,shot,editor",
    "pay_status": "paid",
    "status": "completed",
    "err_msg": "",
    "steps": [...]
  }
}

Note: When pay_status is pending, call the pay endpoint. When all steps are done, video_asset.download_url will have a value—return the full signed URL. Correct format:

https://assets.giggle.pro/private/ai_director/348e4956c7bd4f763b/qzjc7gwkpf.mp4?Policy=...&Key-Pair-Id=...&Signature=...&response-content-disposition=attachment

Wrong (unsigned URL only):

https://assets.giggle.pro/private/ai_director/348e4956c7bd4f763b/qzjc7gwkpf.mp4

Pay API Request and Response

Pay endpoint (/api/v1/trustee_mode/mv/pay):

Request body:

{
  "project_id": "\x3Cyour-project-id>"
}

Response:

{
  "code": 200,
  "msg": "success",
  "uuid": "\x3Cresponse-uuid>",
  "data": {
    "order_id": "\x3Corder-id>",
    "price": 580
  }
}

Retry API Request Example

When a step fails, guide the user to call the retry endpoint to resume from that step:

{
  "project_id": "\x3Cyour-project-id>",
  "current_step": "shot"
}

Note: current_step is the step name to retry (e.g. music-generate, storyboard, shot, editor).

create_and_submit (Optional)

If you only need to create the project and submit the task without waiting for completion, use create_and_submit. Never call create_project and submit_mv_task separately:

api = MVTrusteeAPI()
r = api.create_and_submit(
    project_name="My MV",
    music_generate_type="prompt",
    aspect="16:9",
    reference_image_url="https://...",
    prompt="Upbeat pop"
)
# Returns project_id for manual query/pay later

Return Value

Success:

{
    "code": 200,
    "msg": "success",
    "data": {
        "project_id": "...",
        "download_url": "https://...",
        "video_asset": {...},
        "status": "completed"
    }
}

Returns error message on failure.

Troubleshooting

Scenario Cause Solution
401 Unauthorized or "invalid API key" GIGGLE_API_KEY is missing, expired, or incorrect Verify the key at Giggle.pro account settings and re-export: export GIGGLE_API_KEY=your_api_key
429 Too Many Requests API rate limit exceeded Wait a few minutes and retry; avoid submitting multiple projects in rapid succession
Network timeout / connection error Unstable network or API service temporarily unavailable The script auto-retries up to 5 times with 5-second intervals; check your network if it still fails
pay_status: pending The project requires payment before proceeding The workflow function handles this automatically; if running manually, call the pay endpoint with the project_id
Task step failed (status: failed) A generation step (e.g. music-generate, shot) encountered an error Use the retry endpoint: {"project_id": "\x3Cyour-project-id>", "current_step": "\x3Cfailed-step>"} to resume from the failed step
Workflow timeout (> 1 hour) MV generation took too long Query progress manually with the project_id to check current status; contact support if the task is stuck
安全使用建议
This skill appears to do what it says: it calls Giggle.pro using the GIGGLE_API_KEY to create and run MV generation jobs. Before installing, verify you trust Giggle.pro and understand billing: the workflow will poll for progress and can automatically call the pay endpoint (which could incur charges on your account). Store the API key securely (avoid pasting it in chat), test with a small/cheap job first, and be prepared to revoke the API key if you see unexpected charges or behavior. If you need stricter control, ask the maintainer to expose an explicit confirmation step before invoking any payment endpoint.
功能分析
Type: OpenClaw Skill Name: giggle-generation-aimv Version: 0.0.10 The skill bundle is a legitimate integration for the Giggle.pro AI music video generation service. The core logic in `scripts/trustee_api.py` uses the `requests` library to interact with official API endpoints (giggle.pro) for project creation, task submission, and status polling. It requires a user-provided `GIGGLE_API_KEY` environment variable and contains no evidence of data exfiltration, unauthorized shell execution, or malicious prompt injection in `SKILL.md`.
能力评估
Purpose & Capability
Name/description match what is implemented: the Python script calls https://giggle.pro endpoints to create projects, submit MV tasks, poll progress, and pay. The single required env var is GIGGLE_API_KEY, which is exactly what the script uses as an auth header. Required binary (python3) and pip package (requests) are proportional to the functionality.
Instruction Scope
SKILL.md instructs the agent to call the trustee-mode API and to run a single workflow function that creates a project, submits a task, polls progress, and may auto-handle payment. This is consistent with MV generation, but automatic payment handling and long-polling (up to 1 hour) are behaviors users should be aware of, since they may cause charges or long-running network activity. The skill only reads GIGGLE_API_KEY from the environment (consistent with requires.env).
Install Mechanism
This is instruction-only with an included Python script; there is no remote download or install-from-URL. The only runtime dependency is the requests package (declared in requirements.txt and SKILL.md), which is appropriate and low-risk.
Credentials
Only one credential (GIGGLE_API_KEY) is required and it is used as the script's API key. No other secrets, unrelated credentials, or config paths are requested. The primaryEnv declaration matches actual usage in the code.
Persistence & Privilege
The skill is not marked always:true and does not request system-wide configuration changes. It runs as a client against the Giggle API and does not modify other skills or global agent configuration.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install giggle-generation-aimv
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /giggle-generation-aimv 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.0.10
**v0.0.10 Summary: English support, simplified setup, and environment requirements clarified.** - SKILL.md rewritten in English with improved clarity and concise usage notes - Explicit environment and pip dependencies listed (`python3 (>=3.6)`, `requests`, `GIGGLE_API_KEY`) - Separated configuration instructions: now always require system environment variable for API key - Error handling guidance updated: on error, do not retry automatically, prompt user intervention - Added SKILL.zh-CN.md for Simplified Chinese documentation
v0.0.1
- Initial release of the giggle-generation-aimv skill for creating AI music videos (MV) based on text prompts or custom lyrics. - Provides two modes: "prompt" (music generation from description) and "custom" (music from user lyrics/style/title). - Guides users to set up and validate the GIGGLE_API_KEY before use. - Offers a unified workflow via execute_workflow: project creation, task submission, automated polling/payment, and completion handled in one call. - Supports reference images (asset_id, URL, or base64), aspect ratio selection, optional scene description, and subtitle control. - Includes sample function usage, API request/response examples, error handling, and best practices.
元数据
Slug giggle-generation-aimv
版本 0.0.10
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 2
常见问题

Giggle Generation Aimv 是什么?

Use when the user wants to create AI music videos (MV)—including generating music from text prompts or using custom lyrics. Triggers: generate MV, music vide... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 257 次。

如何安装 Giggle Generation Aimv?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install giggle-generation-aimv」即可一键安装,无需额外配置。

Giggle Generation Aimv 是免费的吗?

是的,Giggle Generation Aimv 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Giggle Generation Aimv 支持哪些平台?

Giggle Generation Aimv 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Giggle Generation Aimv?

由 Parker(@patches429)开发并维护,当前版本 v0.0.10。

💬 留言讨论