Install
openclaw skills install @0bull/0bull-tiktok-postPublish a video to TikTok from a real rented iPhone through the 0bull MCP server, then follow the submission to a final status.
openclaw skills install @0bull/0bull-tiktok-post0bull rents real iPhones by the month. A post is published by driving the TikTok app on one of those phones, so publishing is asynchronous: you queue a submission and poll it until it reaches a final status.
The 0bull MCP server must be connected:
openclaw mcp add 0bull --url https://0bull.net/mcp --transport streamable-http
openclaw mcp login 0bull
If list-accounts-tool is missing, stop and tell the user to run those two commands. You
are authorized as that user, so you only ever see their accounts and phones.
Pick the account. Call list-accounts-tool with platform: "tiktok" and use the
account's id as account_id. If several accounts match what the user described, ask
which one rather than guessing. A TikTok account is bound to a phone slot, and one slot
holds up to four TikTok accounts.
Provide the video through exactly one of:
video_url: a public https URL the server downloads.upload_id: call create-upload-url-tool (no parameters), then POST or PUT the raw
video to the returned upload_url within 15 minutes, then pass the upload_id.Supplying both, or neither, is rejected.
Write the caption with the user, never invented on their behalf. It is optional and holds up to 2200 characters.
Queue it. Call create-submission-tool with platform: "tiktok", account_id, the
video and the caption. Add draft: true to save it in the TikTok app instead of
posting. The call returns the submission immediately in pending; nothing is live yet.
Poll get-submission-tool with the returned submission_id. Publishing a real video
takes minutes, so leave a second or two between calls.
| Status | Meaning |
|---|---|
scheduled | Queued for a future run. |
pending | Queued, not picked up yet. |
ingesting | The video is being fetched or prepared. |
driving | The phone is being driven through the TikTok app. |
published | Posted. Final. |
drafted | Saved as a draft on the phone. Final. |
failed | The run failed. Final. |
cancelled | Cancelled before finishing. Final. |
Report the final status plainly. Never say a video is live before the status says
published.
phone-snapshot-tool for the account's
slot shows what the screen is doing. A login wall or a stuck dialog is obvious in the
picture.cancel-submission-tool works while it is pending, ingesting or
driving. Once a status is final, use delete-submission-tool instead.start-rental-tool or request-phones-tool. Those spend the user's money.
If more phones are needed, say so and let the user go to https://0bull.net.For YouTube Shorts, use the 0bull-youtube-post skill: the title rules are different.