Most platforms expose multiple ways to publish the same media. A single image can be a feed post, a story, or a Pinterest pin. A vertical video can be a reel, a story, or a regular feed video.
Socifyr abstracts these into seven content formats:
| Format | What it is | Typical platforms |
|---|---|---|
text_post | Plain text | X, LinkedIn, Threads, Bluesky, Facebook, Reddit |
photo_single | One image, in-feed | Instagram, LinkedIn, X, Facebook, Threads, Bluesky, Pinterest, Reddit |
photo_carousel | 2–10 images, swipeable | Instagram, LinkedIn, Facebook, Threads, Bluesky |
short_video | Vertical short-form (≤90s) | TikTok, Instagram Reels, YouTube Shorts |
feed_video | Regular video in-feed | Instagram, LinkedIn, Facebook, X, YouTube |
story | 24-hour ephemeral story | Instagram, Facebook |
document_post | PDF / slide attachment |
Auto-detection
If you don't specify a format, Socifyr picks one based on the upload type:
| You upload… | Default format |
|---|---|
| Text only | text_post |
| 1 image | photo_single |
| 2+ images | photo_carousel |
| Video | feed_video |
| PDF / slides | document_post |
Overriding the format
When you want a video to publish as a reel instead of a regular feed video, set contentFormat explicitly:
await socifyr.uploads.video({
connections: ['instagram-mybrand', 'tiktok-me'],
medias: [videoBuffer],
text: 'New product launch',
contentFormat: 'short_video',
})socifyr post "New product launch" \
--media demo.mp4 \
--to instagram-mybrand,tiktok-me \
--format short_videoPlatform fallbacks
If a format isn't supported on a platform (e.g. story to LinkedIn), Socifyr falls back to that platform's closest equivalent — usually photo_single or feed_video. The fan-out result tells you exactly what was published where.
Per-platform overrides
For finer control — e.g. make Instagram a Reel but keep LinkedIn a feed video — use platformOptions:
await socifyr.uploads.video({
connections: ['instagram-mybrand', 'linkedin-myhandle'],
medias: [videoBuffer],
platformOptions: {
'instagram-mybrand': { mediaType: 'REELS' },
'linkedin-myhandle': { visibility: 'PUBLIC' },
},
})Keys can be slugs (most precise), ObjectIds, or platform names (instagram applies to all Instagram connections).