Attach Video to Post
set_post_videoAttaches a video (MP4 or MOV, max 200MB) to a draft or scheduled post, from either an HTTPS URL (video_url) or a file already uploaded to FeedSquad storage through a signed upload URL (upload_id); exactly one of the two is required. A URL is downloaded and rehosted to durable storage, so a scheduled post keeps working after the source URL expires. An upload_id attaches once, and only while it belongs to this account, has not expired and holds an MP4 or MOV no larger than its declared size whose content matches its declared type; upload errors carry error.data = { code, recovery } with codes UPLOAD_NOT_FOUND, UPLOAD_EXPIRED, UPLOAD_ALREADY_USED, UPLOAD_NOT_RECEIVED, UPLOAD_TOO_LARGE, UNSUPPORTED_FORMAT, VIDEO_QUOTA_EXCEEDED and UPLOAD_NOT_AVAILABLE. Counts against the 5GB monthly video budget (account usage reports what remains). Optional thumbnail_url sets the X poster frame. A post holds one media format at a time (single image, carousel or video): replace=true swaps an existing image or carousel for this video. Published posts cannot be changed. dry_run=true validates the URL and size, or the uploaded file, without consuming quota or the upload. Included with paid Handler only: on Free Handler the call is refused as not included in the plan. Attaching media to an approved (ready or scheduled) post returns it to draft, and it needs approval again before it can publish. Every response carries status_before, status_after and approval_required.
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": {
"post_id": "<post_id>"
},
"name": "set_post_video"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | When true, the call validates the URL and size, or the uploaded file, without downloading, attaching or consuming quota or the upload. | |
| post_id | Yes | The post id to attach a video to. | |
| replace | No | When true, the call discards any existing single image or carousel on the post and attaches this video instead. | |
| alt_text | No | Optional accessibility text. | |
| upload_id | No | The upload_id of a video file already uploaded to FeedSquad storage through a signed upload URL. Attaches the stored file once. Takes video_url or upload_id, not both. | |
| video_url | No | HTTPS URL of the video (MP4 or MOV, max 200MB). Server validates via HEAD, downloads, and rehosts to durable storage. Takes video_url or upload_id, not both. | |
| thumbnail_url | No | Optional HTTPS URL of a poster-frame image (X uses it for the native video preview). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| dry_run | No | ||
| post_id | Yes | ||
| mime_type | No | ||
| upload_id | No | ||
| video_url | No | ||
| size_bytes | No | ||
| status_after | No | ||
| dashboard_url | No | ||
| status_before | No | ||
| thumbnail_url | No | ||
| approval_reset | No | ||
| approval_required | No |