Publish a video to YouTube or X
publish_videoPost a finished video to one of the user's connected accounts. Only call after the user explicitly agreed to publish and confirmed the title (YouTube) or post text (X): this posts publicly on their behalf. YouTube: posted right away, free, needs title; set privacy (default public). X: posted now or at scheduled_at, needs text (max 280 characters, links count as 23); costs credits charged only when the post goes out - tell the user the cost from get_publishing_status first. video_url must be a TTSForFree link: final_video_url from get_localization_status, or public_url of a video uploaded with create_upload_url.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"video_url": "<video_url>"
},
"name": "publish_video"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | YouTube tags, comma separated. | |
| text | No | X post text. | |
| title | No | YouTube title (no < or >). | |
| privacy | No | YouTube visibility. Default public. | |
| platform | No | Use when the user has exactly one account on that platform. | |
| video_url | Yes | TTSForFree video link (final_video_url or public_url). | |
| account_id | No | account_id from get_publishing_status. Required when several accounts share a platform. | |
| description | No | YouTube description. | |
| scheduled_at | No | X only: ISO 8601 time with offset, e.g. 2026-11-20T09:00:00+07:00. Omit to post now. Ask the user for their time zone if unclear. |