详细分析 ▾
运行时依赖
版本
- Added a README.md file with documentation for setup, usage, inputs, triggers, environment, and procedure. - Clarified `.env` usage rules and guidance for the API key in error messages. - Reorganized and trimmed documentation in SKILL.md for clarity. - No changes to core functionality; update is documentation only.
安装命令 点击复制
技能文档
Use this skill to execute lip sync tasks directly, not to generate integration code.
All paths in this document are relative to the current skill root directory.
Runner:
sh "run.sh"
Trigger
- User asks to run lip sync
- User asks to check lip sync task status
- User provides video and audio and expects the final driven video result
Required Inputs
- video input: URL or local file path
- audio input: URL or local file path
Optional:
JOGG_BASE_URL, defaulthttps://api.jogg.aiJOGG_API_PLATFORM, defaultopenclawplayback_type, defaultnormalpoll_interval_seconds, default10max_wait_seconds, default1800
If any required input is missing, ask only for the missing item.
Default values used when unset:
JOGG_BASE_URL=https://api.jogg.aiJOGG_API_PLATFORM=openclawJOGG_LIP_SYNC_DEFAULT_PLAYBACK_TYPE=normalJOGG_LIP_SYNC_DEFAULT_POLL_INTERVAL_SECONDS=10JOGG_LIP_SYNC_DEFAULT_MAX_WAIT_SECONDS=1800
JOGG_API_KEYis required.- Other current environment variables are optional.
- If
JOGG_API_KEYis empty, stop and tell the user to purchase an API plan athttps://www.jogg.ai/api-pricing/and obtain an API key before continuing.
Hard Rules
- Execute the existing runner in the current run.
- Prefer the fixed runner over handwritten HTTP calls.
- Use
run.shas the only runner entrypoint. - Do not write scripts, helper files, SDKs, wrappers, or temporary executors.
- Do not replace execution with code generation.
- Do not create duplicate tasks for the same normalized inputs in one run.
- Reuse existing tasks whenever allowed by the decision rules.
- Prefer returning the final video result over producing artifacts.
Endpoints
POST /v2/upload/assetGET /v2/lip_sync_videoPOST /v2/create_lip_sync_videoGET /v2/lip_sync_video/:task_id
Header:
X-Api-Key: $JOGG_API_KEY- optional
x-api-platform: $JOGG_API_PLATFORM
Procedure
- Collect missing inputs only.
- For create or reuse flow, execute the runner with
--no-pollfirst. - Parse the returned JSON and read
task_idplusstatus. - If status is
pendingorprocessing, call the runner again with--task-idto query or poll. - Return the execution result directly in the conversation.
Output contract:
stdout: final machine-readable JSON result onlystderr: progress logs during upload, query, create, and polling- Recommended agent pattern: create with
--no-poll, then query bytask_id
Runner Modes
Create or reuse a task:
sh "run.sh" \
--video "" \
--audio "" \
--playback-type "normal" \
--no-poll
Query a task by task_id:
sh "run.sh" \
--task-id ""
Useful flags:
--force-recreate: only when the user explicitly asks to regenerate after a terminal task--poll: wait until terminal state intask_idmode--no-poll: return immediately in create or reuse mode; recommended for the first runner call from the skill--poll-interval-seconds--max-wait-seconds
run.sh behavior:
- Uses the native shell implementation directly.
- Requires
curlandjq. - Uses the system default values when optional environment variables are unset.
Decision Rules
playback_typedefaults tonormalif omitted.- The query endpoint returns the latest matching task under the current authenticated user and space.
- Reuse
pending,processing, andsuccesstasks by default. - Do not recreate a
failedtask unless the user explicitly requests a retry. - Query before every create attempt.
Allowed playback_type values:
normalnormal_reversenormal_reverse_by_audio
Output
Return only execution results:
actionreused- Whether an existing task was reused or a new one was created
task_id- Current
status data.result_urlwhen successfulerror.messagewhen failed- If still running, return the live
task_idandstatus - Never replace the result with a generated script or file
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制