Install
openclaw skills install @beatra-ai/douyin-cover-makerCreate a Douyin cover or vertical short-video cover from a video topic, hook, script, portrait, product photo, or reference image. This AI cover maker builds a clear focal visual and headline-safe composition for Douyin short-video covers, creator series, product demos, tutorials, food, lifestyle, and knowledge content, then refines an accepted draft into a consistent account-cover direction.
openclaw skills install @beatra-ai/douyin-cover-makerCreate one Douyin or vertical short-video cover from a topic, hook, script, key-frame screenshot, product or portrait photo, visual reference, or accepted draft. It covers Douyin cover, Douyin short-video cover, viral-style cover, and vertical-video cover requests. Reuse decisions already present in the conversation and take the shortest route to one publish-ready cover.
beatra.images.generate. Do not enter this route
on a style word alone.beatra.images.transform. A video file
is not an image reference: when the user starts with a video, ask for one
exported key frame or screenshot, or use the topic-only route.beatra.images.edit with the selected
draft as images[0]; use at most two normalized local edit regions.This Skill creates one new cover. Route an existing cover that only needs a
performance review to cover-performance-preflight; route a full video build
to product-video-studio.
Reuse the stated topic, hook, account style, target viewer, visual references, and must-keep details. Ask only when a missing choice would materially change the result. Without a photo or key frame, the topic or hook is a hard input: do not invent one, and do not pay on a style word alone. For a Douyin feed cover with no stated canvas, default to vertical 9:16. Do not reuse a Xiaohongshu 3:4 default.
Build around one visual hook, one focal subject visible at phone size, one style direction, and any ordered image roles. When the user already wrote title copy, place it in the top or bottom third and keep it from filling the frame. Otherwise default to a text-safe area rather than promising rendered Chinese typography. If the user requests in-image words, include the exact short text and its third-of-frame placement in the confirmation and verify it only when the result is visible.
Use only this Skill's bundled scripts/mcp_client.py for every remote Beatra
operation. Do not configure or call a host Beatra Connector and do not use
REST/OpenAPI as a fallback. Upload local image files through the bundled
client, then pass their artifact references in the declared order. The upload
does not inspect an image; review only facts the host can actually see.
Keep model: "auto" and count: 1 by default. Call beatra.models.list only
for a real availability, compatibility, control, or price decision. Before the
generation, show and freeze the final prompt, canvas, ordered references and
roles, headline treatment, model, controls, and count. Planning is free;
generation is not.
After approval, create one opaque stable client_request_id that contains no
user content and submit exactly once. Any changed prompt, reference or order,
canvas, model, count, or control is new paid work and needs a new confirmation
and a new request ID. Use the request shapes in workflow.
Store the returned task_id and poll only that task through
beatra.tasks.get. When the task ID is lost, use beatra.tasks.list to find
candidates and verify the chosen task with tasks.get. Only when the original
creation response is genuinely unknown may the byte-equivalent payload be
replayed with the same client_request_id. Slow polling, connection, update,
or authorization failures never create replacement paid work.
Cancel only when the user asks. If cancellation returns 409, continue
tracking the original task. When the artifact is visible, review phone-size
focal clarity, safe-area contrast, final canvas, crop resilience, and requested
must-keep details. Deliver artifact links, observed dimensions, task ID,
resolved model, and returned billing.net_charged_credits; offer one focused,
unexecuted refinement only.
The bundled client silently checks at most once every 24 hours during a public command. When a newer version is available, the client installs it automatically without separate confirmation. It downloads only from the fixed official Beatra discovery and immutable CDN paths, verifies the archive, manifest, and every package-owned file, and replaces only files owned by this package. If an update fails, the current installation remains usable and the original command continues. The setting persists for this installation.
python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check