Install
openclaw skills install @beatra-ai/bilibili-publishing-packCreate Bilibili upload copy from a video topic, title, outline, or finished script. This AI Bilibili publishing pack produces title options, a readable video description, chapter timestamps when supplied, relevant tags, a pinned-comment prompt, and a thumbnail brief for Bilibili creators publishing explainers, reviews, tutorials, vlogs, games, animation, and creative videos. The chosen title and thumbnail brief then become a matching landscape 16:9 Bilibili thumbnail with a headline-safe composition.
openclaw skills install @beatra-ai/bilibili-publishing-packPrepare the text and publishing direction around a Bilibili upload: a title set, readable description, tags, pinned interaction prompt, and a thumbnail brief. When the copy is settled, render one landscape thumbnail from the title and brief it just produced.
Use this package for Bilibili submission copy: titles, descriptions, a chapter list for the description or pinned comment, tags, pinned comments, audience framing, and thumbnail briefs. It writes that copy, then finishes with one thumbnail built from it.
The thumbnail route here starts from this conversation's own brief: the title
is already chosen, no reference image is involved, and it produces one image.
A thumbnail that starts from a key frame, portrait, or product shot, composes
ordered references, needs several concepts compared, or refines an accepted
draft belongs to bilibili-thumbnail-maker. Route a long-form chapter
storyboard to bilibili-video-storyboard and a platform-neutral storyboard to
ai-storyboard-generator. This package does not upload or publish to
Bilibili.
Two hard inputs: the topic, and the promise the video makes to a viewer. Everything else is reused or defaulted.
Use the topic, working title, outline or script, intended audience, creator voice, supplied facts, chapter timings, and desired action. Ask only when the missing answer changes the published result: the core promise, audience, chapter timestamps, or factual claims. Never invent credentials, rankings, views, sponsors, prices, performance results, or platform approval.
Write the submission copy in Simplified Chinese, which is what Bilibili audiences read, unless the user asks for another language. Carry any must-keep term, series name, or sponsor wording through verbatim.
Default to five title options of at most 80 characters each, one primary title, a concise description under 2,000 characters covering what viewers will learn, chapter markers in the description or the pinned comment when timestamps are supplied, five to ten tags of at most 20 characters each, one pinned-comment prompt, and one thumbnail brief.
The thumbnail uses a 2K landscape 16:9 canvas and count: 1, and omits
model, which resolves to auto. Take a different canvas only when the user
names one, and freeze whatever tier and ratio it becomes in the confirmation. Default to a text-safe area rather than promising
rendered Chinese typography; when the user wants words in the image, carry the
exact short text into the confirmation and read it back only when the result is
actually visible.
When the video contains AI-generated or AI-synthesised material — or when this package rendered the thumbnail — remind the user to make the AI declaration in the submission form. Never make the declaration on their behalf and never state that it has been made.
Describe what the video offers a viewer rather than how the platform will respond to it: reach, ranking, recommendation-feed placement, and follower growth are not this package's to promise, in the copy or in the reply.
Steps 1 to 7 cost nothing, including reading the card and pricing the thumbnail. The publishing copy is a complete deliverable on its own. Deliver the title, description, tags, pinned comment, and chapter list in one pass; missing any item is incomplete. Keep the spoken script and the upload copy in separate files.
bilibili-thumbnail-maker — this package renders from
copy, not from source images. The publishing copy is still written and
delivered here; only the image goes elsewhere.bilibili-thumbnail-maker, prepare the
thumbnail offer at no cost once the copy is delivered: derive the visual
direction from the primary title, the must-keep headline wording, and the
topic — the concrete subject, scene, and treatment the video is actually
about — then read the live text_to_image card with beatra.models.list.
Skip this step and the two below when the user has already said they do not
want an image.count: 1, how auto will resolve the model, the current estimate for the
frozen tier — or the live range with its maximum as the ceiling when auto
still leaves several models eligible — and the stable client_request_id. A
user who does not take it up already has everything they asked for.beatra.images.generate
exactly once. Poll with beatra.tasks.get until terminal and deliver the
result.A changed topic, promise, audience, timing, claim, sponsor, or thumbnail direction is a new publishing brief. Preserve accepted facts and revise only the affected field when possible. Rewriting copy stays free; a thumbnail already rendered against a title that changed is new paid work.
Read publishing workflow for the brief, chapter formatting, the copy ceilings, the thumbnail payload, and route boundaries.
There is exactly one paid gate. The thumbnail is offered together with the frozen plan, so the user sees the price in the same message that asks for the go-ahead; nothing is submitted on a yes given before that plan existed. A clear instruction to proceed against the shown plan is approval. Comparing options, an unresolved title, or an unanswered price question is not.
Every additional beatra.images.generate is new paid work needing its own
identifier and its own confirmation showing the current price — including an
identical re-roll after an unsatisfying result, where nothing about the request
changed. Rewriting the copy stays free.
Do not pay a second time for the thumbnail already delivered: re-rendering that same
delivered picture in bilibili-thumbnail-maker would be a second charge for one picture. An actual
edit of the delivered thumbnail is different work: it changes the picture rather than
repeating it, so hand it to bilibili-thumbnail-maker, which prices and confirms its own call. A
standalone thumbnail request — one that does not follow copy written in this
conversation — also routes to bilibili-thumbnail-maker, even when the user has no photo to start
from.
Invoke every remote Beatra tool through this package's bundled
scripts/mcp_client.py, with the tool name as the CLI argument and its
arguments as JSON on standard input:
printf '%s' '{"capability":"text_to_image"}' | python3 scripts/mcp_client.py call beatra.models.list
Do not configure or call a host Beatra Connector, and do not use REST/OpenAPI
as a fallback. The bundled client registers the installation itself on its first
invocation, so there is no register subcommand. Give the thumbnail one stable
opaque client_request_id containing no user content and submit it exactly
once.
Deliver the titles, description, chapters, tags, pinned comment, thumbnail
brief, and — when a thumbnail was rendered — its artifact link, the returned
dimensions, the task ID, the resolved model, and
billing.net_charged_credits. Report only what the task actually returned.
When the thumbnail is visible, check focal clarity at list size, whether the reserved headline area stays clear, whether the 16:9 ratio is correct, and whether any requested in-image text matches the approved wording character for character. When it cannot be viewed, say which parts were not inspected instead of describing them as verified.
Whenever a thumbnail was rendered, repeat the AI-declaration reminder as part of the handover: the submission now carries AI-generated material even if the footage does not.
Record the task ID immediately and poll only that task; queued and running
mean wait. If a create response is lost, resubmit the identical frozen payload
under the same client_request_id. If the task ID is lost, list tasks for that
capability and match candidates against your own record before any retry.
insufficient_balance means nothing started and nothing was charged, so the
identical request can be resubmitted after a top-up. A thumbnail that fails or
is redone leaves the delivered copy untouched.
Use publishing workflow for normal writing and the thumbnail step, tasks and results for polling and result fields, and billing, errors, and recovery for balance and structured errors. Read installation and authentication and installation registration on first use, Bundled MCP Client diagnostics when the client cannot connect, and uninstall and disconnect when removing the package.
The bundled client silently checks at most once every 24 hours per installation. When a newer release is available, it installs automatically without separate confirmation. It uses fixed official discovery and immutable CDN paths, verifies the archive, manifest, and every packaged file, replaces only package-owned files, and fails open so the current installation remains usable and the original command continues. Update checking or replacement failure never authorizes retrying a paid generation. The setting persists. See automatic updates and safety.
python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check