Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计通过

tiktok-video-maker抖音视频制作者

Agent Skill

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

总安装

5,551

周安装

229

GitHub Stars

1

下载量

1,814
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:tiktok-video-maker(抖音视频制作者)
来源仓库:https://github.com/georgegally/tiktok-video-maker
安装命令:
openclaw skills install tiktok-video-maker
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install tiktok-video-maker

简介

通过 LovelyBots API 从脚本和图像生成 TikTok 谈话风格视频。

  • 支持视频排队、状态轮询和下载 URL 获取,全流程自动化处理。
  • 输入脚本文本和图像资源,系统自动调度生成并返回结果链接。
  • 需确认 API 密钥权限及网络连接稳定性,避免任务中断风险。
  • 适用于需要快速产出个性化内容的创作者,提升制作效率。

SKILL.md

name
tiktok-video-maker
description
Generate TikTok-style talking videos from a script and image using the LovelyBots API. Queue a video, poll for completion, and retrieve a download URL — all in one workflow. Built for marketing teams, ecommerce brands, and agent pipelines that need consistent video output at scale.
metadata
{ "openclaw": { "requires": { "env": ["LOVELYBOTS_API_KEY"], "bins": ["curl", "python3"] }, "primaryEnv": "LOVELYBOTS_API_KEY", "emoji": "🎬", "homepage": "https://lovelybots.com/openclaw" } }

TikTok Video Maker

Generate talking videos programmatically using the LovelyBots API. This skill lets you queue a video from a script and source image, poll until it's ready, and return the final video URL.

Get your API key at: https://lovelybots.com/developer API base URL for bots: https://api.lovelybots.com/api


What This Skill Does

  • Submits a video generation job (script + source image → queued video)
  • Polls the job status until completed (or failed)
  • Returns the final video URL
  • Reports credits remaining after each request
  • Accepts image as file upload, URL, or base64 (single image field)

Setup

  1. Create a LovelyBots account at https://lovelybots.com
  2. Activate a subscription plan (required for API video generation)
  3. Create an API token at https://lovelybots.com/developer

Set your LovelyBots API key as an environment variable:

export LOVELYBOTS_API_KEY=your_api_key_here

Or add it to your openclaw.json:

{
  "skills": {
    "entries": {
      "tiktok-video-maker": {
        "env": {
          "LOVELYBOTS_API_KEY": "your_api_key_here"
        }
      }
    }
  }
}

Critical Tips for Agents

  1. Use the API host for bot calls: https://api.lovelybots.com/api. Do not use the web app host for API requests.
  2. Always send Authorization: Bearer $LOVELYBOTS_API_KEY on every API request.
  3. Treat video.id and voice_id as UUID strings. Never assume numeric IDs.
  4. Poll GET /api/videos/:id until terminal status (completed or failed) with timeout and retry guards.
  5. If using image URLs, they must be public http/https URLs. Localhost/private-network URLs are blocked.
  6. Keep auth/user flows on https://lovelybots.com (dashboard/login/docs), and keep automation calls on api.lovelybots.com.
  7. On non-2xx API responses, surface the error and stop retrying blindly.

Example Prompts

  • "Generate a 30-second product ad video using my image at https://example.com/image.jpg with this script: Welcome to our summer sale..."
  • "Make a video with the TikTok Video Maker — use image [url-or-base64-or-upload] and script: [text]"
  • "Queue a video generation job and give me the download link when it's done"
  • "Create a talking video for my TikTok ad using LovelyBots"

How to Generate a Video

Step 1 — Submit the job

Best quality input recommendation:

  • Use a clear, front-facing portrait image.
  • Use 9:16 orientation (for example 1080x1920).
curl -X POST https://api.lovelybots.com/api/create \
  -H "Authorization: Bearer $LOVELYBOTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "script": "Welcome to our summer sale. Use code SAVE20 for 20% off everything this week only.",
    "image": "https://example.com/your-image-1080x1920.jpg",
    "public": false,
    "action_prompt": "Subject smiles warmly and waves at the camera.",
    "camera_prompt": "Medium closeup, static camera, cinematic lighting, 4k."
  }'

Response:

{
  "id": "b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde",
  "status": "queued",
  "credits_remaining": 1,
  "share_url": "https://lovelybots.com/videos/b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde/share/abc123token"
}

Step 2 — Poll for completion

curl "https://api.lovelybots.com/api/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $LOVELYBOTS_API_KEY"

Response when processing:

{
  "id": "b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde",
  "status": "processing",
  "credits_remaining": 9,
  "share_url": "https://lovelybots.com/videos/b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde/share/abc123token"
}

Agent Status Update (recommended)

When status is queued or processing, immediately report progress to the user (including share_url) before continuing to poll.

Template:

Status Update:
Job ID: <id>
Status: <status>
Credits Remaining: <credits_remaining>
Share URL: <share_url>

Response when complete:

{
  "id": "b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde",
  "status": "completed",
  "video_url": "https://lovelybots.com/videos/b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde.mp4",
  "share_url": "https://lovelybots.com/videos/b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde/share/abc123token",
  "credits_remaining": 9
}

Response if failed:

{
  "id": "b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde",
  "status": "failed",
  "error": "Image could not be processed",
  "credits_remaining": 10,
  "share_url": "https://lovelybots.com/videos/b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde/share/abc123token"
}

Step 3 — Return the video URL to the user

Once status is completed, return video_url to the user. The video is ready to download or share.


Polling Strategy

Poll every 5–10 seconds. Most videos complete within 60–120 seconds. If status is still processing after 5 minutes, surface an error to the user.

Suggested polling loop (bash):

VIDEO_ID="b6f9a32d-3c53-4a6c-9d8c-2f0f7a1b4cde"
POLL_INTERVAL_SECONDS=8
MAX_WAIT_SECONDS=300
START_TS=$(date +%s)
HEADERS_FILE=$(mktemp)
trap 'rm -f "$HEADERS_FILE"' EXIT

extract_json_field() {
  local key="$1"

  if command -v jq >/dev/null 2>&1; then
    jq -r --arg key "$key" '.[$key] // empty'
    return
  fi

  if command -v python3 >/dev/null 2>&1; then
    python3 -c 'import json,sys; key=sys.argv[1]; data=json.load(sys.stdin); value=data.get(key, ""); print("" if value is None else value)' "$key"
    return
  fi

  echo "Install jq or python3 to parse API responses in this polling loop." >&2
  return 127
}

while true; do
  NOW_TS=$(date +%s)
  if [ $((NOW_TS - START_TS)) -ge "$MAX_WAIT_SECONDS" ]; then
    echo "Timed out after ${MAX_WAIT_SECONDS}s waiting for video completion." >&2
    break
  fi

  HTTP_RESPONSE=$(curl -sS --connect-timeout 10 --max-time 30 \
    -D "$HEADERS_FILE" \
    -w $'\
%{http_code}' "https://api.lovelybots.com/api/videos/$VIDEO_ID" \
    -H "Authorization: Bearer $LOVELYBOTS_API_KEY")
  CURL_EXIT=$?
  if [ "$CURL_EXIT" -ne 0 ]; then
    echo "Polling request failed (curl exit $CURL_EXIT). Retrying..." >&2
    sleep "$POLL_INTERVAL_SECONDS"
    continue
  fi

  HTTP_CODE=$(printf '%s\
' "$HTTP_RESPONSE" | tail -n 1)
  RESPONSE=$(printf '%s\
' "$HTTP_RESPONSE" | sed '$d')

  if [ "$HTTP_CODE" = "429" ] || [ "$HTTP_CODE" -ge 500 ]; then
    RETRY_AFTER=$(awk 'tolower($1)=="retry-after:" {print $2}' "$HEADERS_FILE" | tr -d '\
' | tail -n 1)
    if printf '%s' "$RETRY_AFTER" | grep -Eq '^[0-9]+$'; then
      WAIT_SECONDS="$RETRY_AFTER"
    else
      WAIT_SECONDS="$POLL_INTERVAL_SECONDS"
    fi
    echo "Transient HTTP $HTTP_CODE while polling. Retrying in ${WAIT_SECONDS}s..." >&2
    sleep "$WAIT_SECONDS"
    continue
  fi

  if printf '%s' "$HTTP_CODE" | grep -Eq '^[0-9]{3}$' && [ "$HTTP_CODE" -ge 400 ]; then
    API_ERROR=$(printf '%s\
' "$RESPONSE" | extract_json_field error 2>/dev/null || true)
    echo "Polling failed with HTTP $HTTP_CODE${API_ERROR:+: $API_ERROR}" >&2
    break
  fi

  STATUS=$(printf '%s\
' "$RESPONSE" | extract_json_field status) || break
  if [ -z "$STATUS" ]; then
    API_ERROR=$(printf '%s\
' "$RESPONSE" | extract_json_field error 2>/dev/null || true)
    if [ -n "$API_ERROR" ]; then
      echo "API error: $API_ERROR" >&2
    else
      echo "Unexpected API response (missing status)." >&2
    fi
    break
  fi

  if [ "$STATUS" = "completed" ]; then
    printf '%s\
' "$RESPONSE" | extract_json_field video_url
    break
  elif [ "$STATUS" = "failed" ]; then
    API_ERROR=$(printf '%s\
' "$RESPONSE" | extract_json_field error 2>/dev/null || true)
    echo "Video generation failed${API_ERROR:+: $API_ERROR}" >&2
    break
  fi
  sleep "$POLL_INTERVAL_SECONDS"
done

Key Differentiators

  • Consistent identity output — stable presenter look across generated videos
  • Failed renders are refunded — you only pay for successful videos
  • Editable after generation — not locked output like HeyGen/Synthesia
  • No credit burns on retries — reliable for automated pipelines

API Reference

MethodPathDescription
POST/api/createSubmit a video generation job
POST/api/videosAlias for /api/create
GET/api/videos/:idGet job status and video URL
GET/api/voicesList available voices (filter by gender/age)

POST /api/create — Request Body

FieldTypeRequiredDescription
scriptstringThe spoken text for the video
imagefile or stringUnified image input. Can be multipart file upload, http/https URL, or base64/data URL
publicbooleanWhether the video appears in the public feed (default: true)
genderstringmale or female — skips AI detection, speeds up response
agestringyoung_adult, adult, mature, middle_aged, or older
action_promptstringOptional action/performance guidance
camera_promptstringOptional camera/framing guidance
voice_idstring (UUID)Specific voice ID from GET /api/voices — skips AI detection and auto-selection entirely

Image guidance:

  • Use front-facing portrait images for best lip-sync stability.
  • Use 9:16 orientation (recommended 1080x1920).
  • If image is a URL, it must be publicly reachable (localhost and private-network hosts are blocked).

GET /api/voices — Response

FieldTypeDescription
voices[].idstring (UUID)Use as voice_id in create requests
voices[].namestringVoice display name
voices[].genderstringmale or female
voices[].agestringyoung_adult, adult, mature, middle_aged, or older

GET /api/videos/:id — Response

FieldTypeDescription
idstring (UUID)Job ID
statusstringqueued / processing / completed / failed
video_urlstringDownload URL (only when completed)
share_urlstringPublic shareable page URL (always present)
credits_remainingintegerVideos remaining in your plan this month
errorstringError message (only when failed)

Troubleshooting

ProblemLikely CauseFix
401 Invalid or expired API tokenMissing/incorrect Bearer tokenRegenerate token at https://lovelybots.com/developer and send Authorization: Bearer $LOVELYBOTS_API_KEY
403 errors (Please select a plan, monthly limit, or IP not allowed)Plan/usage/IP restrictionsEnsure subscription is active, check monthly limit, and verify token IP allowlist settings
404 Video not foundWrong video.id or token user mismatchUse the UUID returned by create response, and poll using the same API token owner
422 image is required or image URL errorsMissing image or blocked URLSend image as upload/URL/base64. If URL, it must be public http/https (no localhost/private network)
429 Rate limit exceededToo many requestsIncrease polling interval, add jitter/backoff, retry later
cf-mitigated: challenge header appearsRequest sent to proxied hostUse https://api.lovelybots.com/api/... (DNS-only API host), not https://lovelybots.com/api/...
Poll loop times outLong render time or transient API/network issueRaise MAX_WAIT_SECONDS, inspect API error payload, and retry with same video.id

Links

  • Get API key: https://lovelybots.com/developer
  • API base URL: https://api.lovelybots.com/api
  • Public feed: https://lovelybots.com/feed
  • Full docs: https://lovelybots.com/openclaw
  • Homepage: https://lovelybots.com

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

83.47%
按下载量换算1,514

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills