| YouTube | X | |
|---|---|---|
| Characters | 5,000 | 280 |
| Media | a video (required) | optional |
| Hashtags | 3-5 hashtags in the description, never more than 15 total | 1-2 hashtags, zero is fine |
| Links in body | fine | suppress reach |
| Needs platform approval | yes | yes |
YouTube allows 5,000 characters; X caps at 280. A post written to YouTube's length gets truncated — usually mid-sentence — unless it is rewritten, not trimmed.
YouTube: 3-5 hashtags in the description, never more than 15 total. X: 1-2 hashtags, zero is fine. Carrying the tag block across is the single most obvious sign of an automated cross-post.
Links are fine on YouTube. On X they cut distribution — the link belongs in a reply, not in the post.
YouTube is a search engine: the title carries the keyword in the first 40 characters. X is one hook and nothing else — opinionated, conversational, over in a breath. Those are different jobs, so the same words cannot do both well — and every algorithm here demotes text that obviously was not written for it. The fix is not to skip cross-posting; it is to send a native version to each network.
curl -X POST https://postwire.io/api/post \
-H "Authorization: Bearer $POSTWIRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["youtube", "x"],
"text": "Your post",
"per_platform": {
"youtube": { "text": "The YouTube version" },
"x": { "text": "The X version" }
}
}'
PostWire's /api/generate writes those per-platform versions for you from a single prompt, respecting
every limit in the table above. From an AI agent it is one MCP tool call.
Other pairs: X to YouTube · all combinations · which APIs need approval