Oficio y operaciones
Video posts
propost-video-posts
Cuándo ayuda
Attaches videos to ProPost posts, either from a public https link with attach_video or from a local file with start_video_upload, a PUT to the upload link, then finish_video_upload, and advises which channels can carry video, how to write the caption and what goes in the first frame. Use whenever someone says "add this video to my post", "post this clip on LinkedIn/TikTok/YouTube/Instagram", "upload my video", "I have an mp4", "schedule a reel", or hits a video error like video_unsupported, video_length_unknown or upload_incomplete.
Los skills funcionan con el conector de ProPost, disponible en Pro y Premium. Configurar el conector
Gets a video onto the right post, on the channels that can carry it, with a caption written for sound-off viewing, then checks the post is ready.
Before you start
get_account: time zone,autonomy(video attaching works at every level, scheduling needsschedule).list_channels: for each target see the network,videorequirement (YouTube needs one),needs_reconnect, and how it is connected. Only channels connected through ProPost's publishing integration (via: "managed"inget_channel_stats, paid plans) can carry video. Bluesky, Mastodon, Google Business and directly connected channels refuse withvideo_unsupported.- The post:
get_postor create it withcreate_draftfirst. A video is attached to an existing post. - Ask where the video lives: a public link, or a file the assistant holds.
Workflow
A. The video has a public https link
attach_videowithpost_idandvideo_url. The link must serve the video file itself (not a page with a player), answer with a videoContent-Typeand aContent-Length, use the default https port, carry no credentials in the URL, and finish within about 4 minutes. Up to 5 redirects are followed. Private or internal addresses are refused.- Read the response:
has_videoshould be true andapplied_to_linkedlists linked copies that also got it.
B. The video is a local file (no public link)
start_video_uploadwithpost_id,file_name(e.g.launch.mp4),mime_type(one ofvideo/mp4,video/quicktime,video/webm,video/x-m4v,video/mpeg) and the exactsize_bytes(at most 1 GB).- It returns
upload_url,method: "PUT",headers,size_bytes,expires_in_seconds. PUT exactlysize_bytesbytes of the file toupload_urlwith those headers before the link expires (default 15 minutes). The link carries no ProPost credentials; do not send any. finish_video_uploadwithpost_id. It checks the file arrived at the declared size. Nothing changes on the post until this step.- If you cannot run an HTTP PUT yourself (no file access or network tool), say so and ask the person to upload the video in ProPost's composer, or to host it at a public link and use path A. Do not pretend it worked.
A new start_video_upload replaces an earlier unfinished one.
Then, for both paths
- Write or refine the caption (guidance below) with
update_post. check_post: fix every issue. A missing video on YouTube givesvideo_required.- At
schedulelevel,add_to_queueorschedule_postwith an ISO time and the person's offset. Atdrafts, tell them it is waiting in ProPost. - To undo:
remove_video(also clears an unfinished upload).
Which channels carry video
| Channel | Video |
|---|---|
| LinkedIn, Facebook, Instagram, TikTok, Threads, X, Pinterest, Telegram | Yes, when connected through ProPost's publishing integration |
| YouTube | Required: the post text is the description, its first line is the title |
| Bluesky, Mastodon, Google Business | Not through ProPost; use an image or a link instead |
Linked copies: apply_to_linked defaults to true and puts the video on every unpublished linked copy whose channel can carry video, replacing its video. Set it to false to keep the video on one post. Copies on channels that cannot carry video are skipped; mention it (a Bluesky copy then needs its own image or a link).
Writing guidance
- Assume sound off. Most feeds autoplay muted. The first frame and the first two seconds carry a text hook (4 to 7 words) burned into the video. Tell the person to edit this into the file; you cannot change pixels.
- Caption does a different job from the video. Do not paraphrase it. Give the context the video lacks: who it is for, the one takeaway, what to do next. LinkedIn: 2 to 5 short lines. Instagram/TikTok: a hook line plus one line, 0 to 3 tags. YouTube: first line is the title, then a description with timestamps only if the person supplied them.
- Format: vertical 9:16 for TikTok and Instagram Reels; vertical or square for LinkedIn; landscape 16:9 for YouTube. Short beats long: under 60 seconds unless it earns more.
- Captions on the video (subtitles) help accessibility and retention. Suggest burning them in; do not promise ProPost adds them.
- A thumbnail or cover: attach an image only where the network supports it alongside video; otherwise tell the person to set it in the network.
- Example caption for a founder clip: "We cut onboarding from 9 days to 2. This is the one change that did most of it (60 seconds). Which step in your process would you remove first?" Use figures the person gave.
Guardrails
- Do not download or re-host videos that are not the person's own or are not licensed for reuse. Ask if unsure.
- Do not send private or signed links that expire before publishing; the video is copied at attach time, but verify
has_videorather than assuming. - Never
publish_nowwithout an explicit yes after showing the caption and channel. Large videos can take a while to process on the network side; report the post'sstatuswithget_postafterwards. - Do not attach a video to a published post (
already_published).
If something fails
video_unsupported: the channel cannot carry video via ProPost. Remove the video from that copy (remove_video) or useapply_to_linked: false.video_unavailable: video is not configured for the account; tell them to check their plan or ProPost settings. Do not retry in a loop.unsupported_type: convert to MP4, MOV, WebM, M4V or MPEG.video_too_large: over 1 GB. Compress or trim.video_length_unknown: the link did not declare its size. Use path B.video_size_mismatch: the file differs from the declared size. Check the link or re-measuresize_bytes.video_too_slow: the host is too slow for the 4-minute budget. Use path B or a faster host.blocked_url/fetch_failed: the link is private, not https, has credentials or a non-standard port, or the server refused it. Ask for a public link.upload_failed: retry once fromstart_video_upload.upload_incomplete: the PUT did not finish or the size was wrong; PUT again before the link expires, or start over.no_pending_upload: runstart_video_uploadfirst.no_video: nothing to remove.video_required/network_rejected: attach a video; read the posterrorand fix format or length.- Others: see
../CONVENTIONS.md.
Cómo añadir un skill
- Claude (web y escritorio): descarga el skill en .zip y añádelo en Ajustes, Capacidades, Skills.
- Claude Code: descomprímelo en ~/.claude/skills/ (o en .claude/skills/ de tu proyecto).
- Otros asistentes: abre el SKILL.md y pégalo en las instrucciones personalizadas o el conocimiento del proyecto.
Los skills están escritos en inglés. Tu asistente te responderá y escribirá los posts en tu idioma.