| YouTube | ||
|---|---|---|
| Characters | 2,200 | 5,000 |
| Media | a photo or video (required) | a video (required) |
| Hashtags | max 5 hashtags at the END of the caption | 3-5 hashtags in the description, never more than 15 total |
| Links in body | fine | fine |
| Needs platform approval | yes | yes |
Instagram accepts photos, YouTube is video-only. Image posts have nowhere to land.
Instagram caps at 2,200 characters, YouTube allows 5,000. Posting the short version verbatim wastes the room YouTube gives you to actually explain the thing.
Instagram: max 5 hashtags at the END of the caption. YouTube: 3-5 hashtags in the description, never more than 15 total. Carrying the tag block across is the single most obvious sign of an automated cross-post.
YouTube requires a separate title (max 100 characters). Instagram has no such field, so there is nothing to copy across — it has to be written.
Instagram expects 9:16 for Reels, 1:1 or 4:5 for feed. YouTube expects 16:9 landscape (Shorts 9:16). The same file will be letterboxed or cropped.
Instagram is built for short captions — under 100 characters is rewarded. YouTube is a search engine: the title carries the keyword in the first 40 characters. 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": ["instagram", "youtube"],
"text": "Your post",
"per_platform": {
"instagram": { "text": "The Instagram version" },
"youtube": { "text": "The YouTube 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.
PostWire takes one idea and publishes a version written for each network — the right length, hashtags and format per platform. It also refuses posts that would fail, like a video network with no video, before they are queued.
Free for one brand — 30 posts a month, no card. Starter is $9/month for three brands and 300 posts. There is a REST API and an MCP server if you would rather automate it.
Start free — no card →Other pairs: YouTube to Instagram · all combinations · which APIs need approval
Most tools that do this bill per connected profile. What that actually costs once you add a second brand is worth reading first.